(PHP 4, PHP 5, PHP 7, PHP 8)
str_replace — Remplace toutes les occurrences dans une chaîne
Description
str_replace(
array|string
$search
,
array|string
$replace
,
string|array
$subject
,
int
&$count
=
null
): string|array
Pour remplacer un texte en fonction d'un modèle plutôt qu'une chaîne fixe,
utilisez preg_replace().
Liste de paramètres
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.
Valeurs de retour
Cette fonction retourne une chaîne, ou un tableau, contenant les valeurs
remplacées.
Exemples
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 : good goy miss moy
$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;
?>
Notes
Note:
Cette fonction gère les chaînes binaires.
Attention
Ordre de remplacement
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.
Voir aussi
- str_ireplace() - Version insensible à la casse de str_replace
- substr_replace() - Remplace un segment dans une chaîne
- preg_replace() - Rechercher et remplacer par expression rationnelle standard
- strtr() - Remplace des caractères dans une chaîne