Manuel PHP
Précédent |  | Suivant

# ereg_replace

(PHP 3, 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 :

Exemple 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 :

Exemple 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. ?>`

Exemple 3. Remplacer les URL par des liens cliquables

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

> Astuce : 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().

Précédent | Sommaire | Suivant
Expressions rationnelles | Niveau supérieur | ereg