begin process at 2012 02 05 01:26:30
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Tutoriaux

 > TUTORIAL #2 FONCTIONS EREG & EREG_REPLACE

TUTORIAL #2 FONCTIONS EREG & EREG_REPLACE


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Tutoriaux Niveau :Débutant Date de création :01/02/2003 Date de mise à jour :01/02/2003 16:33:55 Vu :9 019

Auteur : revinc

Ecrire un message privé
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

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




 Sources du même auteur

Source avec Zip BASE DE MOTEUR DE RECHERCHE
MÉTHODE POUR FORMULAIRES
Source avec une capture DES GRAPHIQUES PARAMÉTRABLES
Source avec Zip TUTO+SOURCE #3 : ESPACE MEMBRE SANS MYSQL
TUTO+SOURCE #2 : ESPACE MEMBRE SANS MYSQL

 Sources de la même categorie

Source avec une capture INTÉGRER À UNE BASE DE DONNÉES DES COORDONNÉES GÉOGRAPHIQUES... par slhuilli
Source avec Zip DÉCOMPOSER UN CODE PHP AVEC LA FONCTION INCLUDE par Julien39
CRÉATION D'UN SCRIPT D'AUTHENTIFICATION par phpAnonyme
Source avec Zip Source avec une capture N/X API: GOOGLE MAPS DEPUIS PHP VALID W3C par GillesWebmaster
PHP EXTRAIRE DES MAILS D'UN GROS FICHIER LOCAL OU DISTANT par cosmoswarezone1

Commentaires et avis

Commentaire de rapidos le 01/05/2003 09:40:12

Franchement bravo !
je crois que j'ai rarement rencontré un tutorial de cette qualité et aussi complet !

J'ai encore un peu de mal a tester la validité de mon mail mais ca va venir :)

Sur ce bon courage et bravo encore !

Commentaire de virtuelkiller le 22/05/2003 19:35:27

Bonjour !
Je suis un newbie en php et je voudrais savoir :
comment fait ton pour vérifier qu'une chaîne ne contient pas que des espaces ? Mais je voudrais que cette chaîne accepte tous les caractères, mais vérifier qu'il n'y a pas que des espaces !
Comment faire  ?
Merci d'avance !

V.K.

Commentaire de revinc le 23/05/2003 09:28:01

if(trim($ta_chaine) != "") {
achoe "pas que des espaces";
}

trim() enlève les espaces au début et à la fin de la chaine...

++

Commentaire de virtuelkiller le 23/05/2003 19:09:33

j'ai fait comme ça moi
ereg("^[ ]",$la_chaine)

ça marche aussi ! ;-)
@+

Commentaire de revinc le 26/05/2003 10:18:35

nan ca ça vérifie seulement qu'il y ait un espace en début de chaîne :)
fo faire

!ereg("^[ ]+$",$chaîne); alors chaîne avec pas que des espaces

Commentaire de marc1306 le 02/01/2007 05:10:36

bonjour , petite question

si je veux verifier que $nom n'ai que des lettres , ou chiffres
que le premier caractere soit une lettre , qu'il n'y ai rien d'autre que ça . ( tt simplement eviter les caractes spécieux et eviter tout ce qui est sql injection et verifier la validité du $nom )
que faudrai il faire

j'ai trouvé ça : function verify_loginname($s) {
/* a-z, A-Z, 0-9 */
return(preg_replace('@[^a-zA-Z0-9]@','',$s));
}

est ce correct ?

Commentaire de jawad_casa le 22/02/2007 13:47:24

Bonjour,
SVP, je cherche une fonction php qui me permet de verifier si le format d'un email est valid ou non;
merci de vos réponces

Commentaire de rapidos le 22/02/2007 16:29:38

function validate_email($email){

   $exp = "^[a-z\'0-9]+([._-][a-z\'0-9]+)*@([a-z0-9]+([._-][a-z0-9]+))+$";

   if(eregi($exp,$email)){

     if(checkdnsrr(array_pop(explode("@",$email)),"MX")){
       return true;
     }else{
       return false;
     }

   }else{

     return false;

   }    
}

tiré de PHP.net (http://fr2.php.net/manual/fr/function.checkdnsrr.php)

Commentaire de jawad_casa le 22/02/2007 16:33:40

merci rapidos.
@+

Commentaire de roula275 le 13/09/2010 09:14:38

je veux verifier ca
1.le premier lettre majusule
2.un espace
3.des nombres decimals
4.espace
5.un lettre miniscule
pou obtenir ca par exemple A 23.45 a

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,780 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales