ID: 26363
User updated by: prof_moriarty at veryfast dot biz
Reported By: prof_moriarty at veryfast dot biz
-Status: Open
+Status: Bogus
Bug Type: Regexps related
Operating System: win 98SE
PHP Version: 4.3.4
New Comment:
Typo in last post. read 4.3.2 in place of 3.4.2...
I've just done some more testing of this, and it's now working?!?!?!??!
Which has made me REALLY baffled
I had two scripts that wouldn't work under 4.3.4. I narrowed it down to
that line of code in one of them (the other was 2000 lines and would
have taken days to debug :) )
Anyhow, both scripts now work. As does my 3 line test script which
invariably crashed yesterday.
I havn't altered my installation of PHP, apache, or mysql since
yesterday!!!
This is really, REALLY weird...
Untill this happens again, i'll give this bug a 'bogus' rating.
But i'd suggest someone look into it.
Previous Comments:
------------------------------------------------------------------------
[2003-11-24 11:22:30] prof_moriarty at veryfast dot biz
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. ;)
------------------------------------------------------------------------
[2003-11-23 21:15:49] [EMAIL PROTECTED]
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 http://bugs.php.net/?id=26363&edit=1