Ask a Question related to PHP Development, Design and Development.
-
sniper@php.net #1
#26363 [Opn]: preg_replace() crashes PHP
ID: 26363
Updated by: [email]sniper@php.net[/email]
-Summary: preg_replace crashes PHP
Reported By: prof_moriarty at veryfast dot biz
Status: Open
Bug Type: Regexps related
Operating System: win 98SE
PHP Version: 4.3.4
New Comment:
Does not crash with linux.
Previous Comments:
------------------------------------------------------------------------
[2003-11-23 13:29:03] scottm at spamcop dot net
Your regex wont work.
Your trying to match || followed by a space at the end of the string.
Where you have space then the double pipes in $string.
Using
------
$string = "ship_id = '17' ||";
$string = preg_replace("/ \|\|$/", "", $string);
echo $string;
I get no
ship_id = '17'
as exepcted
------------------------------------------------------------------------
[2003-11-23 09:25:57] prof_moriarty at veryfast dot biz
Description:
------------
There seem to be some major issues with preg_replace in this version.
See code actual and reproducable for explanations
Reproduce code:
---------------
$string = "ship_id = '17' ||";
$string = preg_replace("/\|\| $/", "", $string);
echo $string;
Expected result:
----------------
SHOULD result in
ship_id = '17'
being printed to the screen.
Actual result:
--------------
PHP crashes.
Indeed it would seem absolutely anything i enter as either the regexp,
or the string will crash it. Even if both are blank.
Below is the 'details' of the error (as gained from windows thing):
"
PHP caused an invalid page fault in
module <unknown> at 0000:854fd78b.
Registers:
EAX=0000004c CS=016f EIP=854fd78b EFLGS=00010246
EBX=0063f474 SS=0177 ESP=0063f330 EBP=10135328
ECX=00000000 DS=0177 ESI=0000004c FS=96a7
EDX=0000008a ES=0177 EDI=007d68cc GS=0000
Bytes at CS:EIP:
00 2e 00 05 00 2e 00 05 00 2e 00 05 00 2e 00 05
Stack dump:
011750f4 ffffffff 10135328 10135328 01010101 01010101 01010101 00100101
0000004c 00100010 01820010 00000000 00000000 0102014c 01020102 01020102
"
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=26363&edit=1[/url]
sniper@php.net Guest
-
#26363 [Opn->Bgs]: preg_replace() crashes PHP
ID: 26363 User updated by: prof_moriarty at veryfast dot biz Reported By: prof_moriarty at veryfast dot biz -Status: ... -
#26363 [Com]: preg_replace crashes PHP
ID: 26363 Comment by: scottm at spamcop dot net Reported By: prof_moriarty at veryfast dot biz Status: Open... -
#26363 [NEW]: preg_replace crashes PHP
From: prof_moriarty at veryfast dot biz Operating system: win 98SE PHP version: 4.3.4 PHP Bug Type: Regexps related Bug... -
preg_replace help
I'm having some trouble getting this replacement to work efficiently. I have the following code: $thing = preg_replace("(\r\n|\n|\r|\t)", "",... -
preg_replace help please
this is supposed to any occurrence of *something* into <strong>something</strong> $str = preg_replace("!\*(.*?)\*!","... -
prof_moriarty at veryfast dot biz #2
#26363 [Opn]: preg_replace() crashes PHP
ID: 26363
User updated by: prof_moriarty at veryfast dot biz
Reported By: prof_moriarty at veryfast dot biz
Status: Open
Bug Type: Regexps related
Operating System: win 98SE
PHP Version: 4.3.4
New Comment:
But the regexp DOES work with 3.4.2!!! And earier version too.
What the regexp ("/\|\| $/") does is:
\|\| = looking for ||
" " = looking for space
$ = the above must be at the end of the string
No piping or anything else required there.
And the string it's replacing is something more like:
$del_str .= "ship_id = '17' || "; (with an extra space at the end (typo
my missing it out on the original post)). That'd be why you thought it
wouldn't work. Sorry. ;)
Previous Comments:
------------------------------------------------------------------------
[2003-11-23 21:15:49] [email]sniper@php.net[/email]
Does not crash with linux.
------------------------------------------------------------------------
[2003-11-23 13:29:03] scottm at spamcop dot net
Your regex wont work.
Your trying to match || followed by a space at the end of the string.
Where you have space then the double pipes in $string.
Using
------
$string = "ship_id = '17' ||";
$string = preg_replace("/ \|\|$/", "", $string);
echo $string;
I get no
ship_id = '17'
as exepcted
------------------------------------------------------------------------
[2003-11-23 09:25:57] prof_moriarty at veryfast dot biz
Description:
------------
There seem to be some major issues with preg_replace in this version.
See code actual and reproducable for explanations
Reproduce code:
---------------
$string = "ship_id = '17' ||";
$string = preg_replace("/\|\| $/", "", $string);
echo $string;
Expected result:
----------------
SHOULD result in
ship_id = '17'
being printed to the screen.
Actual result:
--------------
PHP crashes.
Indeed it would seem absolutely anything i enter as either the regexp,
or the string will crash it. Even if both are blank.
Below is the 'details' of the error (as gained from windows thing):
"
PHP caused an invalid page fault in
module <unknown> at 0000:854fd78b.
Registers:
EAX=0000004c CS=016f EIP=854fd78b EFLGS=00010246
EBX=0063f474 SS=0177 ESP=0063f330 EBP=10135328
ECX=00000000 DS=0177 ESI=0000004c FS=96a7
EDX=0000008a ES=0177 EDI=007d68cc GS=0000
Bytes at CS:EIP:
00 2e 00 05 00 2e 00 05 00 2e 00 05 00 2e 00 05
Stack dump:
011750f4 ffffffff 10135328 10135328 01010101 01010101 01010101 00100101
0000004c 00100010 01820010 00000000 00000000 0102014c 01020102 01020102
"
------------------------------------------------------------------------
--
Edit this bug report at [url]http://bugs.php.net/?id=26363&edit=1[/url]
prof_moriarty at veryfast dot biz Guest



Reply With Quote

