str_replace

(PHP 4, PHP 5)

str_replaceRemplace toutes les occurrences dans une chaîne

Description

mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )

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 au lieu de la fonction 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.

Historique

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.

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 : 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;
?>

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

LoadingChargement en cours