preg_replace: avoiding double replacements

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everyone,

Sorry for bothering you again.
Today I met a problem exactly described by a developer in users' notes
that follow the preg_replace description in the manual:
info at gratisrijden dot nl
02-Oct-2009 02:48 
if you are using the preg_replace with arrays, the replacements will apply as subject for the patterns later in the array. This means replaced values can
be replaced again.

Example:
<?php
$text = 
'We want to replace BOLD with the <boldtag> and OLDTAG with the <newtag>';

$patterns 
= array(
'/BOLD/i', 
'/OLDTAG/i');
$replacements 
= array(
'<boldtag>', 
'<newtag>');

echo preg_replace 
($patterns, $replacements, $text);
?>

Output:
We want to replace <b<newtag>> with the <<b<newtag>>tag> and <newtag> with the <newtag>

Look what happend with BOLD. 

Is there any solution to this besides any two-step sophisticated trick
like case changing?
Thanks!

--
With best regards from Ukraine,
Andre
Http://oire.org/ - The Fantasy blogs of Oire
Skype: Francophile; Wlm&MSN: arthaelon @ yandex.ru; Jabber: arthaelon @ jabber.org
Yahoo! messenger: andre.polykanine; ICQ: 191749952
Twitter: http://twitter.com/m_elensule


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux