Hi Randall,

If you look closely at the definition of preg_match_all(), you'll see
that it generates an array of arrays--that's because, for each match, it
generates an array that corresponds to the result of a single call to
preg_match, then puts all the resulting array into another array.

If you use PREG_SET_ORDER, your $match array contains an array for each
of the matches found. Each array then contains:

* The entire matched string in element 0
* Each of the substring (defined in brackets in your pattern) starting
from array 1.

Hope this helps!


Marco
--
------------
php|architect - The magazine for PHP Professionals
The first monthly worldwide magazine dedicated to PHP programmers
Check us out on the web at http://www.phparch.com


On Sun, 2002-11-17 at 11:13, Randall Perry wrote:
> I have some experience in using regular expressions in Perl, and have been
> able to use preg_match in php, but am having a problem with preg_match_all.
> 
> I'm trying to extract data from an HTML table. Here's my preg_match call
> that correctly grabs the 1st row of data in the table. It grabs 4 columns of
> data:
> 
> preg_match("|<tr 
> class=\"CART_TD_REG\".+?<td.+?>(.*?)<.+?<td.+?>(.*?)<.+?<td.+?>(.*?)<.*?<inp
> ut.*?>[&nbsp;]*(.*?)</td>.*?</tr>|", $res, $match);
> 
> If I use preg_match_all on the same table:
> preg_match_all("|<tr
> class=\"CART_TD_REG\".+?<td.+?>(.*?)<.+?<td.+?>(.*?)<.+?<td.+?>(.*?)<.*?<inp
> ut.*?>[&nbsp;]*(.*?)</td>.*?</tr>|", $res, $match, PREG_PATTERN_ORDER);
> 
> ...and try to print output, I get:
> 
> $match[0] = Array
> $match[0][0] = Array[0]
> $match[1][0] = Array[0]
> $match[0][1] = Array[0]
> $match[1][1] = Array[0]
> 
> 
> Same result with PREG_SETORDER.
> 
> What am I doing wrong?
> 
> -- 
> Randall Perry
> sysTame
> 
> Xserve Web Hosting/Co-location
> Website Development/Promotion
> Mac Consulting/Sales
> 
> http://www.systame.com/
> 
> 
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to