Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php

La fonction ereg_replace (à partir de PHP3)

ereg_replace - eregi_replace

les expressions rationnelles en php La syntaxe :
ereg_replace (motif de chaine, motif de remplacement, chaine sujet);

ereg_replace est sensible à la casse alors que eregi_replace ne l'est pas.
Si une occurence est trouvée, la chaîne sera retournée avec son motif de remplacement.
Dans le cas contraire, la chaîne d'origine sera retournée.

Attention :
Si une valeur numérique est utilisée dans le motif de remplacement, il se peut que vous n'obteniez pas le résultat voulu simplement parce que ereg_replace va interpréter le nombre comme une valeur ordinaire de caractère et nom comme une valeur numérique.
Pour éviter cela, il faut mettre la valeur dans une variable et l'entourée de simple quote.
exemple : $nombre='5';

Exemple :
<?php
$nombre
='3';
$chaine="J'ai mangé trois pommes.";
$chaine=ereg_replace("trois",$nombre,$chaine);
echo
$chaine;

// affichera : J'ai mangé 3 pommes.
?>
Si $nombre avait été déclarée comme ceci $nombre=3; l'affichage aurait donné :
J'ai mangé pommes.


Exemples avec ereg(i)_replace


 Récupérer une fin de chaine chiffrée, l'incrémenter de 1 et la reformer 
Niveau de compréhension :facile

<?php

$chaine
='unlogin1';
$chaine1=ereg_replace("[^0-9]","",$chaine);
$chaine2=eregi_replace("[^a-z]","",$chaine);
echo
$chaine2.($chaine1+1);

// la même chose avec eregi et un tableau
$chaine=eregi("([a-z]+)([0-9]+)",$chaine,$tablo);
echo
$tablo[1].($tablo[2]+1);

// pour info, le même résultat obtenu avec substr

$num=substr($chaine,7);
$chaine=substr($chaine,0,7);
echo
$chaine.($num+1);

?>
Explication :
Simple, une chaine formée de 7 lettres suivie d'un chiffre.
On récupère la partie chiffrée avec ereg_replace en remplaçant par rien tout ce qui n'est pas un chiffre grâce au masque [^0-9]
Ensuite, on reprend la chaine du départ, on et fait le même traitement mais en enlevant les chiffres cette fois.
Il ne reste plus qu'a assembler les deux éléments en ajoutant une unité au nombre et afficher l'ensemble.

Ceci n'est qu'un exemple vous permettant de comprendre ereg_replace.
En effet, on aurait obtenu le même résultat simplement et rapidement avec un substr.

De même que pour ereg(i), je ne vais pas approfondir le sujet et multiplier les exemples sur cette fonction qui est moins utilisée que les PCRE.


Rédaction Yves Maistriaux :: Mai 2003 Dernière mise à jour :: Décembre 2005


European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::