#22366 [Com]: PREG_OFFSET_CAPTURE produces error with preg_match_all

From: Date: Fri, 02 Jan 2004 06:27:17 +0000
Subject: #22366 [Com]: PREG_OFFSET_CAPTURE produces error with preg_match_all
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-52697@lists.php.net to get a copy of this message
ID: 22366 Comment by: eagleprof at yahoo dot com dot au Reported By: csaba at alum dot mit dot edu Status: Bogus Bug Type: PCRE related Operating System: Win 2K PHP Version: 4.3.0 New Comment: This is not a bogus bug. I can repeat it too. I have a Win2K/IIS 5.0 setup using PHP v4.3.2. As csaba says, the problem occurs when you have four parameters and attempt to pass the PREG_OFFSET_CAPTURE flag by itself as the fourth parameter. The workaround is to explicitly set the sort order with the PREG_OFFSET_CAPTURE flag. Previous Comments: ------------------------------------------------------------------------ [2003-02-23 02:52:13] sniper@php.net When you use preg_match_all() with only 3 paramaters, then PREG_PATTERN_ORDER is assumed for order flag. ------------------------------------------------------------------------ [2003-02-21 17:01:39] csaba at alum dot mit dot edu The following code gives me an error message of: Wrong value for parameter 4 in call to preg_match_all() ... if I replace the PREG_OFFSET_CAPTURE with either PREG_OFFSET_CAPTURE | PREG_SET_ORDER or PREG_OFFSET_CAPTURE | PREG_PATTERN_ORDER then it works as advertised. This contradicts the documentation statement: If no order flag is given, PREG_PATTERN_ORDER is assumed $page = "<html><head></head><body><form>" . "<input onClick='alert(\"Hi Mom\")' " . "value='Click me'>" . "<input onClick='alert(\"Hi Dad\")' " . "value=\"Dad's button\">" . "</form></body></html>"; $regexp = "/<input[^>]*(value=[^>]*)>/"; if (!preg_match_all($regexp, $page, $mtch, PREG_OFFSET_CAPTURE)) print "<br>Could not match"; else print "<br>Found matches"; This is on my PHP 4.3.0 / Apache 2.0.43 / Win 2K Pro system Csaba Gabor from New York ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=22366&edit=1

« previous php.bugs (#52697) next »