Général
- Présentation
- Les Symboles
- Les Métacaractères
- Les Ancres et Classes
- Les options
- Constantes prédéfinies
- Equivalences
- Créer un motif
- Les POSIX
- Les PCRE
- Les Plus des PCRE
- Les Assertions Part I
- Les Assertions Part II
- Motif conditionnel
- Mysql et les regex
- Url Rewriting
- Optimisation
- Aide mémoire
Les PCRE
Les POSIX
Pratique
Linux
Spécial php
- Conseils et Astuces
- Délimiteur PCRE
- Créer une bdd
- Utiliser du BBcode
- Le binaire
- Faire un panier
- Cases à cocher
- Citations imbriquées
- Colorateur syntaxique
- Les list-box ou combo-box
- Faire un diaporama
- Isset ou empty ?
- Une légende au survol
- Site en plusieurs langues
- Requêtes dynamiques
- Gestion des smiley
- Faire un moteur de template
- Timestamp php/mysql
- Timestamp mysql
- Matcher une adresse email
- Controler des données
Les billets de fred
- Les POSIX... mise en pratique !
- Limiter l'accès à un répertoire
- Alternance de couleurs
- Magic_quotes
- Désactiver les short_tags
- Require ou include : Bench
- Cohérence dans les chaines de caractères
- "echo" : lapin ou tortue ?
- Gérer un formulaire avec plusieurs boutons
- Le formulaire a t'il été soumis ?
- J'ai décidé de grossir
- La guerre des étoiles
- La guerre des boutons
- Headers already sent
- IP, IP, IP, houra !
- Créer un itérateur avec PHP5
- On vous conduit vers la lumière
- Comment utiliser MySQL avec PHP
- Non aux booléens !
- Php.ini : dist /recommended
- Include : gouffre ou fêlure ?
- Simple comme les sessions !
- Simplifier le traitement des erreurs
- Structurez vos applications
- Franchement, t'es trop for !
- Notice: Undefined variable (ou index)
- Proscrire les variables auto déclarées
La fonction ereg_replace (à partir de PHP3)
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 :
$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
$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.
