ID: 10668
Updated by: andrei
Status: Analyzed
Bug Type: PCRE related
PHP Version: 4.0.5
Assigned To: 

Ok, I made a little mistake, use "f('\\\\1')" rather than "f('\1')".

Previous Comments:

[2001-05-04 13:59:27] [EMAIL PROTECTED]
Oddly, I get the following error:

  Warning: Unexpected character in input: '' (ASCII=92) state=1 in 
/home/groups/t/ta/tavi/htdocs/playground/test.php(4) : regexp code on line 1

  Parse error: parse error in /home/groups/t/ta/tavi/htdocs/playground/test.php(4) : 
regexp code on line 1

  Fatal error: Failed evaluating code: f(''\\''') in 
/home/groups/t/ta/tavi/htdocs/playground/test.php on line 4

PHP compile options may be seen at:


[2001-05-04 12:58:12] [EMAIL PROTECTED]
Can you explain why you think it fails? The following sample (slightly modified from 
yours to dump the $s parameter to function):

$str = "abc'\\''def";
function f($s) { var_dump($s); return "x"; }
print preg_replace("/c(.*)d/e", "f('\1')", $str);


string(5) "'\''"

As it should.


[2001-05-04 11:44:19] [EMAIL PROTECTED]
The following code succeeds on PHP 4.03 and PHP 4.04pl1, but fails on PHP 4.05:

  $str = "abc'\\''def";
  function f($s) { return "x"; }
  print preg_replace("/c(.*)d/e", "f('\1')", $str, -1);

This seems to expose *two* underlying bugs:

  1) There appears to be some problem in the regex state
  2) There is a definite problem with the replacement of
     the backreference with its corresponding string.


ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to