(PHP 4, PHP 5)
str_replace — Remplace toutes les occurrences dans une chaîne
str_replace() retourne une chaîne ou un tableau,
dont toutes les occurrences de search
dans
subject
ont été remplacées par
replace
.
Si vous n'avez pas besoin de règles de remplacement compliquées (comme les expressions rationnelles), utilisez cette fonction de préférence à preg_replace().
Si les paramètres search
et replace
sont des tableaux, alors la fonction str_replace()
prendra une valeur de chaque tableau et les utilisera pour la recherche et
le remplacement sur subject
. Si les paramètres
replace
a moins de valeurs que le paramètre
search
, alors une chaîne de caractères vide sera utilisée
comme valeur pour le reste des valeurs de remplacement. Si le paramètre
search
est un tableau et que le paramètre
replace
est une chaîne de caractères, alors cette chaîne de caractères
de remplacement sera utilisée pour chaque valeur de search
.
L'inverse n'a pas de sens.
Si search
ou replace
sont des tableaux, les éléments sont traités du premier, au dernier.
search
La valeur à chercher, autrement connue comme le masque. Un tableau peut être utilisé pour désigner plusieurs masques.
replace
La valeur de remplacement à substituer aux valeurs trouvées. Un tableau peut être utilisé pour désigner plusieurs valeurs de remplacement.
subject
La chaîne de caractères ou le tableau sur lequel on va effectuer la recherche et le remplacement, aussi connu sous le nom de haystack.
Si subject
est un tableau, alors le
remplacement se fera sur chaque élément de celui-ci, et
la valeur retournée sera aussi un tableau.
count
Si fournie, cette variable contiendra le nombre de remplacements effectués.
Cette fonction retourne une chaîne, ou un tableau, contenant les valeurs remplacées.
Version | Description |
---|---|
5.0.0 |
Ajout du paramètre count .
|
4.3.3 |
Le comportement de cette fonction a changée. Dans les
version précédentes, un bogue existait lors de l'utilisation
de tableaux avec les paramètres search et
replace en même temps. Les index de
search qui étaient vides étaient ignorés,
mais le pointeur interne de replace n'étais
pas incrémenté. Cela a été corrigé en PHP 4.3.3, tout script
s'appuyant sur ce bogue, doit supprimer les entrées vides avant
d'appeler cette fonction pour imiter le comportement d'origine.
|
4.0.5 | Les paramètres peuvent maintenant être des tableaux. |
Exemple #1 Exemple 1 avec str_replace()
<?php
// Génère : <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
// Génère : Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");
// Génère : You should eat pizza, beer, and ice cream every day
$phrase = "You should eat fruits, vegetables, and fiber every day.";
$healthy = array("fruits", "vegetables", "fiber");
$yummy = array("pizza", "beer", "ice cream");
$newphrase = str_replace($healthy, $yummy, $phrase);
// Génère : 2
$str = str_replace("ll", "", "good golly miss molly!", $count);
echo $count;
?>
Exemple #2 Exemple 2 avec str_replace()
<?php
// Ordre des remplacements
$str = "Line 1\nLine 2\rLine 3\r\nLine 4\n";
$order = array("\r\n", "\n", "\r");
$replace = '<br />';
// Traitement du premier \r\n, ils ne seront pas convertis deux fois.
$newstr = str_replace($order, $replace, $str);
// Affiche F car A est remplacé par B, puis B est remplacé par C, et ainsi de suite...
// Finalement, E est remplacé par F
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);
// Affiche : apearpearle pear
// Pour les mêmes raisons que plus haut
$letters = array('a', 'p');
$fruit = array('apple', 'pear');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output;
?>
Note: Cette fonction gère les chaînes binaires.
A cause du fait que la fonction str_replace() effectue les remplacements de la gauche vers la droite, elle peut remplacer une valeur précédemment insérée lors de multiples remplacements.
Note:
Cette fonction est sensible à la casse. Utilisez la fonction str_ireplace() pour un remplacement insensible à la casse.