From: [EMAIL PROTECTED]
Operating system: linux
PHP version: 4.0.4pl1
PHP Bug Type: PCRE related
Bug description: preg_replace: "$dd" pattern in replacement string treated as a
backreference
In php_pcre.c line 630, the dollar sign '$' is also used as in indicator for a
backreference, which is undocumented. This breaks any replacement string that contains
the "$dd" pattern where "dd" are numerical digits. For example:
<?php
$test = "hello there";
$output = preg_replace("/hello/","$10.00",$test);
print $output;
?>
results in the output:
.00 there
The "$10" is taken as a back reference and resolves to NULL leaving the ".00".
In my application, I need to merge user generated text that may contain dollar signs.
I am using preg_replace and doing multiple keyword,value substitutions using arrays.
My only workaround right now is to perform a preliminary preg_replace and insert a
space after each dollar sign.
--
Edit Bug report at: http://bugs.php.net/?id=8986&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]