W3docs

str_replace()

Notre article porte sur la fonction PHP str_replace(), utilisée pour remplacer toutes les occurrences d'une chaîne dans une autre chaîne.

La fonction PHP str_replace() remplace toutes les occurrences d'une chaîne de recherche par une chaîne de remplacement. Elle est utile pour trouver et substituer des motifs précis au sein d'un texte plus long. Nous abordons ci-dessous la syntaxe, les fonctionnalités clés et des exemples d'utilisation.

La fonction str_replace() sert à remplacer toutes les occurrences d'une chaîne dans une autre chaîne. La syntaxe de str_replace() est la suivante :

La syntaxe PHP de str_replace()

str_replace($search, $replace, $subject, $count = null)

La fonction accepte trois paramètres obligatoires et un paramètre optionnel : $search, $replace, $subject et $count.

  • $search : La chaîne, ou tableau de chaînes, à rechercher.
  • $replace : La chaîne, ou tableau de chaînes, par laquelle remplacer.
  • $subject : La chaîne, ou tableau de chaînes, dans laquelle effectuer la recherche.
  • $count (optionnel) : Une variable passée par référence qui reçoit le nombre de remplacements effectués.

La fonction retourne le $subject modifié. La chaîne d'origine n'est jamais modifiée sur place, il faut donc capturer la valeur de retour. str_replace() est sensible à la casse"World" et "world" sont traités comme des chaînes différentes. Si vous avez besoin d'ignorer la casse, utilisez str_ireplace() à la place.

Un exemple basique

Voici la manière la plus simple d'utiliser la fonction str_replace() — remplacer un mot par un autre :

Exemple de PHP str_replace()

php— editable, runs on the server

Dans cet exemple, la variable $string contient la phrase "The quick brown fox jumps over the lazy dog." Nous remplaçons le mot "brown" par "red" en passant "brown" comme $search et "red" comme $replace. Le résultat est :

The quick red fox jumps over the lazy dog.

Chaque occurrence est remplacée — pas seulement la première. Si la chaîne de recherche apparaît trois fois, les trois seront substituées en un seul appel.

Remplacer plusieurs chaînes en même temps

Lorsque $search et $replace sont des tableaux, chaque élément de $search est remplacé par l'élément situé au même index dans $replace. Le quatrième argument optionnel $count est passé par référence et reçoit le nombre total de remplacements :

Exemple avec des tableaux et $count

<?php
$search = ["brown", "fox"];
$replace = ["red", "bear"];
$subject = "The quick brown fox jumps over the lazy dog.";
$count = 0;
$result = str_replace($search, $replace, $subject, $count);
echo $result; // Output: The quick red bear jumps over the lazy dog.
echo "Replacements made: $count"; // Output: Replacements made: 2
?>

Si $replace est une chaîne unique mais que $search est un tableau, cette chaîne est utilisée pour toutes les correspondances :

<?php
$result = str_replace(["a", "e", "i"], "*", "education");
echo $result; // Output: *duc*t*on
?>

Un piège : les remplacements se propagent en cascade

Les remplacements de tableau sont appliqués dans l'ordre, et chacun s'exécute sur le résultat du précédent. Cela signifie qu'une valeur que vous venez d'insérer peut être à nouveau capturée par un terme de recherche ultérieur :

<?php
$count = 0;
$result = str_replace(["A", "B"], ["B", "C"], "A", $count);
echo $result;        // Output: C
echo "\n";
echo "Replacements: $count"; // Output: Replacements: 2
?>

Ici, "A" devient "B" lors du premier passage, puis ce "B" devient "C" lors du second passage — le résultat final est donc "C", avec deux remplacements comptabilisés. Ordonnez soigneusement vos paires recherche/remplacement pour éviter cela, ou utilisez strtr() lorsque vous avez besoin que chaque paire soit appliquée exactement une fois.

Quand utiliser str_replace()

  • Utilisez str_replace() pour des recherche-et-remplacement littéraux rapides lorsque vous connaissez le texte exact.
  • Utilisez str_ireplace() lorsque la correspondance doit ignorer la casse.
  • Utilisez substr_replace() pour remplacer une portion d'une chaîne par position plutôt que par contenu.
  • Utilisez preg_replace() lorsque vous avez besoin de correspondances de motifs avec des expressions régulières.

La fonction str_replace() offre un moyen simple et efficace de rechercher et remplacer du texte en PHP. Comme elle fonctionne sur des chaînes simples sans surcoût lié aux expressions régulières, c'est l'outil idéal lorsque vous faites correspondre du texte littéral exact.

Pratique

Pratique
Que fait la fonction str_replace en PHP ?
Que fait la fonction str_replace en PHP ?
Was this page helpful?