Manuel PHP
Précédent |  | Suivant

# ereg_replace

(PHP 3 <= 3.0.18, PHP 4 >= 4.0.0)

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 suivant affiche "Ceci etait un test" trois fois :

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

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 2. Exemple avec ereg_replace()
    <?php
    /* Cet exemple ne fonctionne pas comme voulu. */
    $num = 4;
    $string = "Cette chaîne a quatre mots.";
    $string = ereg_replace('quatre', $num, $string);
    echo $string;   /* Affichage : 'Cette chaîne a  mots.' */
    /* Ceci est bon. */
    $num = '4';
    $string = "Cette chaîne a quatre mots.";
    $string = ereg_replace('quatre', $num, $string);
    echo $string;   /* Affichage : 'Cette chaîne a 4 mots.' */
    ?>

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

Précédent | Sommaire | Suivant
ereg | Niveau supérieur | eregi