Tutorial #1 fonctions ereg & ereg_replace en php

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 758 fois - Téléchargée 27 fois

Contenu du snippet

En php, il y a une fonction qui s'appelle ereg() et qui permet d'évaluer la présence ou non d'une chaîne de caractère dans une autre :

exemple

$ch = "bonjour";
$ds = "je vous souhaite le bonjour";

$test = ereg($ch,$ds);

la on vérifie si bonjour est dans la chaîne "je vous souhaite le bonjour". cette recherche est sensible à la casse, c'est-à-dire que les majuscules et minuscules seront distinguées. si la recherche renvoi une réponse positive alors $test prend la valeur true, sinon false
pour effectuer une recherche insensible à la casse, il faut utiliser la fonction eregi().

Si on vérifier que $ch est au début de $ds, on fait :
$test = ereg("^$ch",$ds); (retourne FALSE)
l'accent circonflexe permet de vérifier qu'une chaîne est au début d'une autre.

inversemement, le dollar permet devérifier que $ch est à la fin de $ds :
$test = ereg("$ch$",$ds); (retourne TRUE) car bonjour est à la fin de $ds

maintenant, puisque je sais que bonjour est le dernier mot de ma chaîne $ds, je veux connaître le premier. Pour simplifier, on va dire que le premier mot est tout ce qui est avant le premier espace de la chaîne ("je" en l'occurence)...

on fait :
ereg("^([^ ]*)",$ds,$sortie);

le premier accent circonflexe montre que l'on recherche quelque chose au début de la chaîne $ds.
vous remarquez également qu'une nouvelle variable a été ajoutée à la fin de la fonction : $sortie. $sortie contiendra en fait le tableau du contenu de toutes les parenthèses du premier membre de la fonction ereg(). ici : $sortie[1] contient le résultat de ([^ ]*).

analysons ([^ ]*) maintenant.
l'étoile signifie que l'on recherche quelque chose présent au moins 0 fois
un + aurait signifié que l'on recherche quelque chose au moins une fois
un ? aurait signifié que l'on recherche quelque chose 1 ou 0 fois.

le quelque chose est signifié par le crochet. lorsque l'on met un accent circonflexe au tout début d'un crochet, cela signifie TOUT SAUF CE QUI SUIT L'ACCENT. ici on recherche donc tous les caractères pourvu qu'ils ne soient pas des espaces au début de $ds.

donc le résultat de ([^ ]*) est "je", $sortie[1] contient donc "je"...

bon j'admets que c'est compliqué quand on débute, le tutorial #2 sera plus simple...

Source / Exemple :


// Fin du tutorial

A voir également

Ajouter un commentaire

Commentaire

Messages postés
76
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
12 mars 2009

pas mal pas mal

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.