Ask a Question related to PHP Programming, Design and Development.
-
imacat at mail dot imacat dot idv dot tw #1
#39951 [Opn]: PCRE Failed for Long Matches (Less Than MATCH_LIMIT)
ID: 39951
User updated by: imacat at mail dot imacat dot idv dot tw
Reported By: imacat at mail dot imacat dot idv dot tw
Status: Open
Bug Type: PCRE related
Operating System: Linux 2.6.16.29
PHP Version: 5.2.0
New Comment:
I was wrong. ^^; sorry. The Expected Result is:
=== Test #01 Non-UTF-8
1. "a" repeated 49997 times
strlen(): 49997, preg_match(): 1
2. "a" repeated 49998 times
strlen(): 49998, preg_match(): 1
=== Test #02 UTF-8
1. "\xE4\xB8\x80" repeated 49997 times
strlen(): 149991, preg_match(): 1
2. "\xE4\xB8\x80" repeated 49998 times
strlen(): 149994, preg_match(): 1
And the Actual Result is:
=== Test #01 Non-UTF-8
1. "a" repeated 49997 times
strlen(): 49997, preg_match(): 1
2. "a" repeated 49998 times
strlen(): 49998, preg_match(): 0
=== Test #02 UTF-8
1. "\xE4\xB8\x80" repeated 49997 times
strlen(): 149991, preg_match(): 1
2. "\xE4\xB8\x80" repeated 49998 times
strlen(): 149994, preg_match(): 0
Previous Comments:
------------------------------------------------------------------------
[2006-12-26 07:20:13] imacat at mail dot imacat dot idv dot tw
Description:
------------
Hi. This is imacat from Taiwan. I experienced PCRE failure after
long matches. It doesn't seems to pass the 50000 match limit, UTF-8 or
not. However, looking into the included PCRE library directory I saw no
such limit anywhere. In config0.m4 the setting is
-DMATCH_LIMIT=10000000. In pcrelib/README it states that the default
of --with-match-limit is 500000. In php.ini I saw
pcre.backtrack_limit=100000. Whatever I saw are far less than the
50000 match limit.
This is hard to me since I have several articles to be parsed
that's of size over 50000 bytes/characters.
Reproduce code:
---------------
#! /usr/bin/php
<?php
echo "=== Test #01 Non-UTF-8\n";
$a = str_repeat("a", 49997);
echo "1. \"a\" repeated 49997 times\n";
printf(" strlen(): %6d, preg_match(): %d\n",
strlen($a), preg_match("/^(.*?)\s*$/us", $a));
$a = str_repeat("a", 49998);
echo "2. \"a\" repeated 49998 times\n";
printf(" strlen(): %6d, preg_match(): %d\n",
strlen($a), preg_match("/^(.*?)\s*$/us", $a));
echo "=== Test #02 UTF-8\n";
$a = str_repeat("\xE4\xB8\x80", 49997);
echo "1. \"\\xE4\\xB8\\x80\" repeated 49997 times\n";
printf(" strlen(): %6d, preg_match(): %d\n",
strlen($a), preg_match("/^(.*?)\s*$/us", $a));
$a = str_repeat("\xE4\xB8\x80", 49998);
echo "2. \"\\xE4\\xB8\\x80\" repeated 49998 times\n";
printf(" strlen(): %6d, preg_match(): %d\n",
strlen($a), preg_match("/^(.*?)\s*$/us", $a));
?>
Expected result:
----------------
=== Test #01 Non-UTF-8
1. "a" repeated 49997 times
strlen(): 49997, preg_match(): 1
2. "a" repeated 49998 times
strlen(): 49998, preg_match(): 0
=== Test #02 UTF-8
1. "\xE4\xB8\x80" repeated 49997 times
strlen(): 149991, preg_match(): 1
2. "\xE4\xB8\x80" repeated 49998 times
strlen(): 149994, preg_match(): 0
Actual result:
--------------
=== Test #01 Non-UTF-8
1. "a" repeated 49997 times
strlen(): 49997, preg_match(): 1
2. "a" repeated 49998 times
strlen(): 49998, preg_match(): 1
=== Test #02 UTF-8
1. "\xE4\xB8\x80" repeated 49997 times
strlen(): 149991, preg_match(): 1
2. "\xE4\xB8\x80" repeated 49998 times
strlen(): 149994, preg_match(): 1
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39951&edit=1
imacat at mail dot imacat dot idv dot tw Guest
-
#39951 [NEW]: PCRE Failed for Long Matches (Less Than MATCH_LIMIT)
From: imacat at mail dot imacat dot idv dot tw Operating system: Linux 2.6.16.29 PHP version: 5.2.0 PHP Bug Type: PCRE... -
Error 403 Failed to read heders Error for long-runningCFMAIL and CFINDEX command
I have two different pages with long-running scripts on which I am recieving the following error: Error - 403 Failed to read headers to server:... -
#26295 [Opn->Bgs]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
ID: 26295 Updated by: sniper@php.net Reported By: mnbob70 at earthlink dot net -Status: Open +Status: ... -
#26295 [NEW]: Change from PCRE Library 3.9 to PCRE library 4.3 has resulted in broken code.
From: mnbob70 at earthlink dot net Operating system: Linux lion.phpwebhosting.com 2.4 PHP version: 4.3.4 PHP Bug Type: PCRE... -
#25754 [NEW]: preg_replace and preg_replace_callback are crash on long matches
From: ilya at lebedev dot net Operating system: Win32 PHP version: 4CVS-2003-10-04 (stable) PHP Bug Type: Reproducible crash...



Reply With Quote

