ID: 14304
Updated by: zak
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Feedback
Bug Type: Regexps related
Operating System: Linux php3-2 2.4.7 #1 Thu Aug 9
PHP Version: 4.0.6
New Comment:
I cannot reproduce the problem under PHP 4.1.0. Can you
upgrade to this version?
Previous Comments:
------------------------------------------------------------------------
[2001-12-12 01:31:01] [EMAIL PROTECTED]
The problem is there...
I got the first result :
>array(10) {
> [0]=>
> string(24) "<phpdig:ignore_message/>"
> [1]=>
> string(14) "ignore_message"
> [2]=>
> ...
But on the second, i got nothing but a 'maximum execution time exceeded'.
I traced my code with some echoes and flush(), and it seems that the php engine stays
on the eregi() function.
It not core dump, but Apache goes 100% CPU until the timeout occurs.
------------------------------------------------------------------------
[2001-12-11 17:39:59] [EMAIL PROTECTED]
Thanks for the additional information.
I tested the code snippets provided on PHP 4.1.0 - they
all seem to operate as expected. The input of both
snippets (when fed to your original function) returns
'<br><i></i></td>'
The regular expressions provided later seem to work as
well.
The top snippet captures:
array(10) {
[0]=>
string(24) "<phpdig:ignore_message/>"
[1]=>
string(14) "ignore_message"
[2]=>
bool(false)
[3]=>
bool(false)
[4]=>
bool(false)
[5]=>
bool(false)
[6]=>
bool(false)
[7]=>
bool(false)
[8]=>
bool(false)
[9]=>
bool(false)
}
...and the bottom snippet captures:
array(10) {
[0]=>
string(31) "<phpdig:ignore_common_message/>"
[1]=>
string(21) "ignore_common_message"
[2]=>
bool(false)
[3]=>
bool(false)
[4]=>
bool(false)
[5]=>
bool(false)
[6]=>
bool(false)
[7]=>
bool(false)
[8]=>
bool(false)
[9]=>
bool(false)
}
Is this the output that you get with PHP 4.0.6? Please let
me know!
------------------------------------------------------------------------
[2001-12-09 08:08:18] [EMAIL PROTECTED]
Changed bug type to Regexps
------------------------------------------------------------------------
[2001-12-09 08:00:37] [EMAIL PROTECTED]
I isolate the bug :
this works :
eregi('<phpdig:([a-z0-9_]*)[[:blank:]]*(src=)*["\']*([a-z0-9./_-]+)*["\']*[[:blank:]]*/>','<br><i><phpdig:ignore_message/></i></td>',$regs);
this doesn't (php loops) :
eregi('<phpdig:([a-z0-9_]*)[[:blank:]]*(src=)*["\']*([a-z0-9./_-]+)*["\']*[[:blank:]]*/>','<br><i><phpdig:ignore_common_message/></i></td>',$regs);
------------------------------------------------------------------------
[2001-12-01 23:43:55] [EMAIL PROTECTED]
Please reduce this to a simpler test case. If there is a
bug in str_replace, then it should be reproduceable with a
simple one line test. Logging how the str_replace
functions are called should let you find the culprit.
A line like this after the function calls are made should
do the trick.
error_log ("$line =
str_replace({$regs[0]},$replacement,$line);\n", 3,
'./str_rep_log');
Good Luck!
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/?id=14304
Edit this bug report at http://bugs.php.net/?id=14304&edit=1
--
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]