Tutorial #3 fonctions ereg & ereg_replace

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 349 fois - Téléchargée 28 fois

Contenu du snippet

maintenant que vous savez ce que fait ereg("^([b-d]{1,7})","bdcdefehjedf",$sortie) (réponse $sortie[1] = "bdcd"), on va voir autre chose... par exemple :

$ch1 = "vincent joue du violon";

eregi("^(vincent|nicolas|julien|jean) joue du violon",$ch1,$sortie);

quoi ça fait ça ? ehh bien ça recherche si c'est vincent ou nicolas ou julien ou jean qui fait du violon et le cas échéant retourne en $sortie[1] qui c'est (ici vincent). vous l'avez compris le " | " signifie OU mais en dehors d'un crochet seulement... ereg("[fdg |ghfgh]",$ch1) n'a aucune sens puisque qu'un crochet virtuel est déjà présent entre chaque caractère du crochet)

Source / Exemple :


<?
$pif = floor(microtime()*4)+1;

// on attribut à $prénom l'un des quatre au hasard

switch($pif) {
case 1 : $prénom = "vincent"; break;
case 2 : $prénom = "pierre"; break;
case 3 : $prénom = "niff"; break;
case 4 : $prénom = "anthony"; break;
}

$chaîne = "c'est $prénom qui a mangé le chocolat...";

$chaîne = eregi_replace("chocolat","camembert",$chaîne);

if(ereg("c'est (vincent|niff) qui a mangé le camembert\.\.\.",$chaîne,$sortie)) {
echo $sortie[1]." est méchant";
} else {
echo $prénom." est gentil";
}

?>

Conclusion :


ereg_replace signifie que l'on remplace le contenu du premier terme par celui du second dans la chaîne du troisième terme.
ereg_replace est sensible à la casse, eregi_replace ne l'est pas.

moi petit code, qui aurait pu être beaucoup plus simple, choisit au hasard un prénom parmi une liste de quatre.
si le prénom choisi est niff ou vincent alors on écrit qu'ils sont méchants, si c'est pierre ou anthony alors ils sont gentils. c'est stupide mais bon

bon le ereg_replace suit la même syntaxe que le ereg...
j'ai fini mes tutoriaux sur ereg, si vous voulez des exemples ou exmplications complémentaires sur n'importe quoi, demandez-les en commentaire sur le code.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

Un algo simple serait de faire un explode() sur la chaîne selon les caractères d'espacement (typiquement le caractère ESPACE), puis de parcourir le tableau ainsi obtenu en supprimant l'élément (unset(...)) si son strlen < 4. ensuite tu récupères ta chaîne avec un implode().
Je dis, c'est juste une idée qui doit fonctionner et être très très facile à coder, mais je ne sais pas dans quelle mesure ce sera efficace... à comprendre par: c'est pas franchement optimal comme traitement.
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005

bonjour a tous

et oui ce post date depuis longtemps mais ca persiste ;)

j'ai un souci avec les exprétion reguliere c'est vraiment pas mon fort :(

Comment puis je supprimer tout les mot de mois de 4 lettres dans une chaine de mot ???

Merci de vos réponse.
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

bah l'anglais ça ne devrait pas être une frontière pr la majorité. ciao ;)
Messages postés
385
Date d'inscription
mardi 15 octobre 2002
Statut
Membre
Dernière intervention
19 décembre 2017

c déjà plus clair que mon tuto en chinois:-)
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

une bonne adresse pr apprendre les expressions régulières:
http://www.phpbuilder.com/columns/dario19990616.php3
(c'est sensé être le bon lien, mais ça n'avait pas lair de marcher quand j'ai testé là, sinon allez sur phpbuilder.com et voyez ds les catégorie, c pas sorcier)

et une librairie énorme d'expressions (impressionnant ! )
www.regxlib.com


voilà ;)
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.