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 preg_match (depuis php3)
La syntaxe :preg_match (motif de chaîne , chaîne sujet , tableau résultat);
Ce qui est en italique est optionnel
preg_match retourne vrai si la chaîne sujet contient le motif donné.
Si l'option tableau résultat est fournie, preg_match remplit un tableau avec les correspondances.
$tableau_resultat, il contiendra les résultats de la recherche :
$tableau_resultat[0] contiendra la partie qui satisfait le masque complet.
$tableau_resultat[1] contiendra la partie qui sastisfait la première parenthèse capturante
et ainsi de suite...
Exemples avec preg_match
Exemple 1
Test sur un champ login lettres chiffres uniquement
Niveau de compréhension : facile
$login="Toto1508";
if(!preg_match('`^[[:alnum:]]{4,8}$`',$login))
{
echo"Le login n'est pas correct";
}
else
{
echo"Le login est correct";
}
?>
Explication :
Le login ne peut contenir que des lettres et des chiffres et doit être de 4 caractères minimum à 8 caractères maximum.
[[:alnum:]] classe déterminant l'usage exclusif des lettres et chiffres.
{4,8} est l'intervalle de reconnaissance imposant 4 caractères minimum et 8 maximum.
Exemple 2
Idem que le précédent + l'underscore en utilisant la classe prédéfinie \wNiveau de compréhension : facile
$login="Toto_1508";
if(!preg_match('`^\w{4,8}$`',$login))
{
echo"Le login n'est pas correct";
}
else
{
echo"Le login est correct";
}
?>
Explication :
Le login ne peut contenir que des lettres et des chiffres, ainsi que l'underscore et doit être de 4 caractères minimum à 8 caractères maximum.
\w classe prédéfinie utilisée avec les PCRE et déterminant l'usage exclusif des lettres et chiffres, ainis que de l'underscore.
{4,8} est l'intervalle de reconnaissance imposant 4 caractères minimum et 8 maximum.
Exemple 3
Test sur une emailNiveau de compréhension :difficile
//--- exemple avec les classes prédéfinies
preg_match('`^[[:alnum:]]([-_.]?[[:alnum:]])*@[[:alnum:]]
([-_.]?[[:alnum:]])*\.([a-z]{2,4})$`',$chaine);
//--- exemple avec les classes prédéfinies
preg_match('`^\w([-_.]?\w)*@\w([-_.]?\w)*\.([a-z]{2,4})$`',$chaine)
?>
Explication :
L'adresse email doit absolument commencer par une lettre ou un chiffre
[[:alnum:]] puis peut être suivie d'un seul - ou d'un seul _ ou encore d'un seul point, suivi d'une série de lettres ou chiffres
([-_.]?[[:alnum:]])
Vient ensuite le @ suivi uniquement par une ou plusieurs lettres ou chiffres
[[:alnum:]], puis peut être suivie d'un seul - ou d'un seul _ ou encore d'un seul point, suivi d'une série de lettres ou chiffres
([-_.]?[[:alnum:]])*
Vient enfin le point suivi par 2 à 4 lettres pour le domaine
\.([a-z]{2,4}
Vous remarquerez le \ devant le point qui permet de l'échapper afin qu'il ne soit plus considéré comme un métacaractères mais bien comme le signe . (point)
