Forum und email

ereg_replace

(PHP 4, PHP 5)

ereg_replace — Remplacement par expression rationnelle

Description

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

ereg_replace() effectue une recherche par expression rationnelle 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 leurs parenthèses ouvrantes.

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

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

Example#1 Exemple avec ereg_replace()

<?php

$string 
"Ceci fut un test";
echo 
str_replace(" fut"" est"$string);
echo 
ereg_replace("( )fut""\\1est"$string);
echo 
ereg_replace("(( )fut)""\\2est"$string);

?>

Il est à noter que si vous utilisez une valeur entière avec replacement , vous n'obtiendrez pas le résultat escompté, car ereg_replace() interprétera le nombre comme la valeur ordinale d'un caractère et l'appliquera. Par exemple :

Example#2 Exemple avec ereg_replace()

<?php
/* Ceci ne fonctionne pas comme attendu */
$num 4;
$string "Cette chaîne a quatre mots.";
$string ereg_replace('quatre'$num$string);
echo 
$string;   // Cette chaîne a  mots.

/* Ceci fonctionne comme attendu */
$num '4';
$string "Cette chaîne a quatre mots.";
$string ereg_replace('quatre'$num$string);
echo 
$string;   // Cette chaîne a 4 mots.
?>

Example#3 Remplacer les URL par des liens cliquables

<?php
$text 
ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
                     
"<a href=\"\\0\">\\0</a>"$text);
?>

Tip

preg_replace(), qui utilise la syntaxe des expressions rationnelles compatibles PERL, est une alternative plus rapide de ereg_replace().

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