|
Posted by Andy Pieters on 06/02/05 17:20
On Thursday 02 June 2005 09:52, Johan.Barbier@infowerk.de wrote:
> But if I do that :
>
> <?php
> $texte = 'cd' ;
> $original = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
> $modif = array ('c', 'd', 'e', 'f', 'g', 'h', 'i');
> $texte = str_replace($original, $modif, $texte) ;
> echo $texte, ' <br />' ;
> ?>
>
> The result is : ih
>
> Why ?
You should know that, unless you tell php to limit the number of replaces, it
will keep on replacing until it doesn't find a match anymore.
Here is what happens:
<?php
$texte = 'cd' ;
$original = array('a', 'b', 'c', 'd', 'e', 'f', 'g');
$modif = array ('c', 'd', 'e', 'f', 'g', 'h', 'i');
$texte = str_replace($original, $modif, $texte) ;
#after first replacement
$texte='ef'
#after 2nd replacement
$texte='gh'
#after third replacement
$texte='ih';
If you want to prevent this, tell the function that you only want 2
replacements. Like this:
$limite=2;
$texte=str_replace($original,$modif,$texte,$limite);
Hope this helps
With kind regards
ps: the php documentation is also available in French. Check out:
http://fr2.php.net/manual/fr/function.str-replace.php for more info on
str_replace
Andy
--
Registered Linux User Number 379093
-- --BEGIN GEEK CODE BLOCK-----
Version: 3.1
GAT/O/>E$ d-(---)>+ s:(+)>: a--(-)>? C++++$(+++) UL++++>++++$ P-(+)>++
L+++>++++$ E---(-)@ W+++>+++$ !N@ o? !K? W--(---) !O !M- V-- PS++(+++)
PE--(-) Y+ PGP++(+++) t+(++) 5-- X++ R*(+)@ !tv b-() DI(+) D+(+++) G(+)
e>++++$@ h++(*) r-->++ y--()>++++
-- ---END GEEK CODE BLOCK------
--
Check out these few php utilities that I released
under the GPL2 and that are meant for use with a
php cli binary:
http://www.vlaamse-kern.com/sas/
--
--
Navigation:
[Reply to this message]
|