Bug #10111 Updated: e modifier alters string extraction in preg_replace
| From: | kerry at lothrop dot de | Date: | Mon, 11 Mar 2002 14:52:23 +0000 |
| Subject: | Bug #10111 Updated: e modifier alters string extraction in preg_replace | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-2225@lists.php.net to get a copy of this message | ||
ID: 10111
Updated by: kerry@lothrop.de
Reported By: gcousin@startem.net
Status: Open
Bug Type: PCRE related
Operating System: Linux Debian
PHP Version: 4.0.4pl1
New Comment:
This is a nice feature, not a bug. See my user contributed note in the
manual under preg_replace. Maybe someone should document this behavior.
Previous Comments:
------------------------------------------------------------------------
[2001-04-02 08:08:30] gcousin@startem.net
A short example :
$newsitem = preg_replace('/(<([a-zA-Z-]+)
([^>]*)analyze="[0-9]*"([^>]*)>)(.*?)(<\/\\2>)/mse',
"'\\1'.transformNewsitemPart('\\5').'\\6'", $newsitem);
where I transform the text between any html tag with "analyze"
attribute.
The problem is that the preg_replace function with e modifier adds
backslashes before any " in the matched text (\\5) BEFORE the function
transformNewsitemPart is interpreted.
The behaviour is new in php 4.0.4. It was not present in php 4.0.3.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=10111&edit=1