bon dans le tutorial 1 on a vu des trucs déjà assez compliqué. maintenant on va faire plus simple. j'ai deux chaînes :
$ch1 = "les oiseaux gazouillent";
$ch2 = "les oeufs sont durs";
comment je peux faire si je veux vérifier qu'il n'y a que des lettres et des espaces dans $ch1 ?
comme ça : $réponse = ereg("^[a-zA-Z ]*$",$ch1);
déjà en mettant un ^au début et un $ à la fin, cela signifie qu'on recherche du début à la fin de $ch1.
- signifie donc qu'on recherche le maximum de "tant que le crochet est vrai" dans $ch1.
le crochet signifie que l'on recherche tout caractère compris entre a et z (a-z), entre A et Z (A-Z) ou qui soit un espace ( ).
ce ereg là commence par vérifier que le premier caractère est soit une lettre, soit un espace. si c'est le cas, il vérifie avec la seconde lettre et ainsi de suite jusqu'à la fin. imaginons que $ch1 contienne un "?", alors quand le ereg va vérifier que ce caractère est une lettre ou un espace, le résultat va être négatif et comme on aura pas atteint la fin de $ch1, ereg retournera FALSE.
autres exemple :
ereg("^([A-Za-z ]{2,6})",$ch2,$sortie);
vérifie qu'au moins les deux premières lettres de la chaîne $ch2 sont soit des lettres soit un espace mais si les 2 à 6 premiers caractères sont de ce type, alors $sortie[1] retourne ces n premiers caractères.
ici $sortie[1] vaut "les oe";
ereg("^[A-Z]{1}",$ch1); vérifie que la première lettre de $ch1 est une majuscule.
ereg("[a-zA-Z]{6,}",$ch1) vérifie qu'il existe au moins un mot sans accent d'au moins 6 lettres dans la chaîne $ch1
ereg("[a-zA-Z]{6,}",$ch1) = eregi("[a-z]{6,}",$ch1)
ereg(" [^e]+ ",$ch1); vérifie qu'il existe au moins un bloc de caractères (bloc = ensemble de caractères séparés par les autres blocs d'un espace) qui ne contient pas de "e".
$ch3 = "
http://www.perdu.com/test/test.php
ereg("^
http://www\.([^/\.]+)\.([^/\.]+)",$ch3,$sortie);
cet ereg renvoi le domaine en $sortie[1] et l'extension du domaine en $sortie[2].
le ([^/\.]+) signifie que l'on recherche n'importe quoi qui ne soit pas un point ni un slash et qui ait au moins un caractère.
bien sûr, ce ereg là n'est pas parfait et pourrait par exemple considérer T?T{s comme nom de domaine si on entre
$ch3 = "
http://www.T?T{s.com/test/test.php";
$sortie(1] = perdu et $sortie[2] = com
attention à bien mettre des antislashs devant les points car un point sans antislash signifie "n'importe quel caractère". exemple :
ereg("^(.*)$",$ch1) retournera toujours TRUE car on recherche n'importe quel caractère du début jusqu'à la fin de la chaîne $ch1.
autres exemples :
ereg("^[^x]*$",$ch1) vérifie qu'il n'y a pas de x dans la chaîne $ch1
ereg("^(.*)\.[a-zA-Z0-9]{1,6}$",$ch4); retourne si $ch4 à une extension qui soit une lettre ou un chiffre et qui ait entre 1 et 6 caractère,
si $ch4 = "test.php" retourne TRUE
si $ch4 = ".htaccess" retourne FALSE car htaccess ) plus de 6 lettres.
ereg("(.*)\.([^\.]+)",$ch4,$sortie) vérifie si le nom de fichier $ch4 possède une extension et si c'est le cas retourne le nom du fichier en sortie[1] et l'extension en $sortie[2]
$ch4 = "glou.glou.txt";
$sortie[1] = "glou.glou";
$sortie[2] = "txt";
eregi("^<[/]?([a-z0-9]+)([^>]*)>$",$ch5); vérifie que la chîne est de type balise html et retourne le nom de la balise en sortie[1] et le contenu en sortie[2]. (cette fonction est cependant imparfaite dans certain cas - :-( trouvez pourquoi...)
exemple :
$ch5 = "<a href=bonjour.php>";
$sortie[1] = "a" et $sortie[2] = " href=bonjour.php";
bon voilà c'est fini pour le tutorial #2, si y'a des erreurs ou si j'ai pas été clair, dîtes-le moi... d'autres fonctions et d'autres exemples dans le tutorial #3
Source / Exemple :
// Fin du tutorial
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.