ID:               39459
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dmitrysp at yandex dot ru
-Status:           Open
+Status:           Bogus
 Bug Type:         *Regular Expressions
 Operating System: Windows 2000/XP
 PHP Version:      5.2.0
 New Comment:

It has nothing to do with memory_limit, it's MATCH_LIMIT set in PCRE
library in compile time.
You can change it on *nix, but you have to live with that on win32,
unless you want to build PHP on win32 yourself.


Previous Comments:
------------------------------------------------------------------------

[2006-11-10 12:21:25] dmitrysp at yandex dot ru

Description:
------------
Expression "<table>(.*?)</table>" not work with big text string. On PHP
4 & 5.1.2 - all ok. memory_limit = 128M

Reproduce code:
---------------
Windows XP, PHP 5.2.0:

$buf="A".str_repeat("x",9999997)."B"; // 9 999 997
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 0 

$buf="A".str_repeat("x",9999996)."B"; // 9 999 996
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 1 


Windows 2000, PHP 5.2.0:

$buf="A".str_repeat("x",99997)."B"; // 99 997
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 0 

$buf="A".str_repeat("x",99996)."B"; // 99 996
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 1 


Windows 2000, PHP 4.4.2:

$buf="A".str_repeat("x",9999997)."B"; // 9 999 997
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 0 

$buf="A".str_repeat("x",9999996)."B"; // 9 999 996
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 1 


Windows 2000, PHP 5.1.2:

$buf="A".str_repeat("x",9999997)."B"; // 9 999 997
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 0 

$buf="A".str_repeat("x",9999996)."B"; // 9 999 996
var_dump(preg_match("!A(.*)B!is", $buf, $ok));  // 1
var_dump(preg_match("!A(.*?)B!is", $buf, $ok)); // 1 


Actual result:
--------------
Please up this memory block from 99Kb to <memory_limit> on Windows
2000!


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=39459&edit=1

Reply via email to