ereg_replace

(PHP 3, PHP 4 )

ereg_replace -- Remplacement par expression régulière

Description

string ereg_replace ( string pattern, string replacement, string string)

ereg_replace() effectue une recherche par expression régulière dans la chaîne string en recherchant les occurrences de pattern, puis les remplace par la chaîne replacement.

La chaîne modifiée est retournée. (Ce qui signifie que la chaîne originale sera retournée si aucune occurrence n'est trouvée).

Si pattern contient des parenthèses capturantes, replacement pourra contenir des séquences de la forme \\digit, qui seront remplacées par le texte capturé par la n-ième parenthèse capturante. \\0 correspond à la chaîne originale complète. De 0 à 9 parenthèses capturantes peuvent être utilisées. Les parenthèses peuvent être imbriquées, et leur numéro d'ordre est défini par leur parenthèse ouvrante.

Si aucune occurrence n'est trouvée, la chaîne string sera retournée intacte.

Par exemple, le code suivante affiche "Ceci est un test" trois fois :

Exemple 1. Exemple avec ereg_replace()

<?php
  $string = "Ceci est un test";
  echo ereg_replace (" fut", " est", $string);
  echo ereg_replace ("( )fut", "\\1est", $string);
  echo ereg_replace ("(( )fut)", "\\2est", $string);
?>

Par exemple, le code suivant affiche "Ceci etait un test" trois fois :

Exemple 2. Exemple avec ereg_replace()

<?php
/* Ceci ne fonctionne pas comme attendu */
$num = 4;
$string = "Cette cha&icirc;ne a quatre mots.";
$string = ereg_replace('four', $num, $string);
echo
$string;   /* Affiche : 'Cette cha&icirc;ne a  mots.' */

/* This will work. */
$num = '4';
$string = "Cette cha&icirc;ne a quatre mots.";
$string = ereg_replace('four', $num, $string);
echo
$string;   /* Affiche : 'Cette cha&icirc;ne a 4 mots.'  */
?>

Notez bien que si vous utilisez une valeur de type entier dans le paramètre de remplacement replacement, vous risquez de ne pas obtenir le résultat escompté. Tout cela parce que ereg_replace() va interpréter le nombre comme la valeur ordinale d'un caractère, et l'utiliser. Par exemple :

Exemple 3. Exemple avec ereg_replace()

<?php
/* Cet exemple ne fonctionne pas comme voulu. */
  
$num = 4;
  
$string = "Cette cha&icirc;ne a quatre mots.";
  
$string = ereg_replace('quatre', $num, $string);
  echo
$string;   /* Affichage : 'Cette cha&icirc;ne a  mots.' */

/* Ceci est bon. */
  
$num = '4';
  
$string = "Cette cha&icirc;ne a quatre mots.";
  
$string = ereg_replace('quatre', $num, $string);
  echo
$string;   /* Affichage : 'Cette cha&icirc;ne a 4 mots.' */
?>

Voir aussi ereg(), eregi(), eregi_replace(), str_replace() et preg_match().