Bug #10626 Updated: escaping doesn't work in the replacement clause

From: Date: Thu, 03 May 2001 12:04:18 +0000
Subject: Bug #10626 Updated: escaping doesn't work in the replacement clause
Groups: php.dev 
Request: Send a blank email to php-dev+get-53588@lists.php.net to get a copy of this message
ID: 10626 Updated by: cynic Reported By: hover@mi.ru Old-Status: Open Status: Bogus Bug Type: PCRE related PHP Version: 4.0.5 Assigned To: Comments: You escaped the $1000 on the PHP level, so literal $1000 was sent to PCRE, where $10 was interpreted as a backreference, and since there aren't 10 capturing subpatterns in the pattern, you get an empty string for $10, and the rest is taken as a literal string. Send further questions to php-general@ (after you RTFM, of course). Previous Comments: --------------------------------------------------------------------------- [2001-05-03 03:04:24] hover@mi.ru The problem is that preg_replace() ignores escaping of $nn sequence in the replacement string. <? $str = preg_replace("/a/", "$1000", "test ... a ... test"); echo $str; ?> test ... 00 ... test ----------- #!/usr/local/bin/perl -w $_ = "test ... a ... test"; s/a/$1000/; print; ----------- test ... $1000 ... test This feature leads to impossibility of passing strings like '$1000' via phplib template variables. PHP 4.0.4pl1, 4.0.5 --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=10626&edit=2

« previous php.dev (#53588) next »