Re: getting what's between <td></td>

From: Date: Thu, 22 Feb 2001 09:13:09 +0000
Subject: Re: getting what's between <td></td>
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-41110@lists.php.net to get a copy of this message
> <?php > $data = "<tr><td>Item3</td><td>Item3 Has > Changed</td></tr>"; > > > eregi("<tr><td>([^>]+)</tr><td>([^>]+)</td></tr>", > $data, $regs); > > echo $regs[1]; // "Item3" > echo $regs[2]; // "Item3 Has Changed" > ?> Oops sorry, that fourth line should say: eregi("<tr><td>([^<]+)</tr><td>([^<]+)</td></tr>", $data, $regs); From: "Simon Garner" <sgarner@expio.co.nz> > From: "Tyler Longren" <tyler.longren@midiowa.net> > > > Hello, > > > > I've been reading a LOT on how to solve my problem today, but haven't been > > able to come up with anything yet. > > > > Here's my problem: > > I have an html file that contains many table rows like this: > > > > <tr><td>Item1</td><td>Item1 Again</td></tr> > > <tr><td>Item2</td><td>Item2 Again</td></tr> > > <tr><td>Item3</tr><td>Item3 Again</td></tr> > > <tr><td>Item4</tr><td>Item4 Again</td></tr> > > > > And so on. I want to search this html for a table row that has 'Item3' in > > the first cell. And the second cell should contain 'Item3 Again'. I know > > that I can do this with something like this: > > > > $file = fopen("http://localhost/html.html", > > "r"); > > $data = fread($file, 10000); > > $results = eregi("<tr><td>Item3</tr><td>Item3 > > Again</td></tr>", $data); > > > > > > However, this won't exactly work for me, because that contents of the > > second cell will change daily, so tomorrow, the third table row could look > > like this: > > > > <tr><td>Item3</td><td>Item3 Has Changed</td></tr> > > > > I was thinking I could use sscanf() to do this, but couldn't get anything > > to work. I've tried everything I can think of. > > > > Sorry if the explanation of my problem was hard to understand, I don't > > exactly understand it myself. Thanks everybody!!! > > > > Regards, > > Tyler Longren > > > > > > You just need to use a regular expression with eregi: > > <?php > $data = "<tr><td>Item3</td><td>Item3 Has > Changed</td></tr>"; > > > eregi("<tr><td>([^>]+)</tr><td>([^>]+)</td></tr>", > $data, $regs); > > echo $regs[1]; // "Item3" > echo $regs[2]; // "Item3 Has Changed" > ?> > > A good guide to regular expressions (which are absolutely indispensible if > you want to do much work with strings) is here: > > http://www.delorie.com/gnu/docs/rx/rx_toc.html > > > Cheers > > Simon Garner > >

« previous php.general (#41110) next »