PHP, MYSQL, Javascript, HTML…Just do it!
icône RSS icône Emai icône Accueil
  • PHP - Expressions régulières

    Une expression régulière qu’est-ce que c’est?

    Les expressions régulières , ou expressions rationnelles sont des chaines composées de caractères ASCII. Une expression rationnelle est un masque, qu’on peux appeler aussi modèle ou motif, utilisé pour effectuer une recherche dans une chaine de caractère des portions correspondants au masque. Un exemple très simple de ce qui est un masque : expression régulière qui serait “kodeya.com est un super site”, pourra correspondre à une partie de la chaîne comme “www.kodeya.com est un super site sur le développement”.

    A quoi ça sert une expression régulière ?

    Des expressions rationnelles permettent la recherche des parties de la chaine sujet correspondantes au masque pour les remplacer ou les extraire de la chaine sujet. Vous pouvez ainsi facilement filtrer le contenu des formulaires soumis en recherchant, par exemple, des balises html ( frame, script, flash, etc… ), vérifier si les données sont en bon format.

    Fonctions PHP

    PHP fournit deux types de fonctions qui permettent de travailler avec des chaines à l’aide d’expressions régulières : POSIX et PCRE. Les fonctions PCRE sont compatible PERL ( langage de programmation) et commencent par le préfixe “preg_” . Ces fonctions sont plus puissantes en terme de rapidité et puissance de traitement.

    C’est pour quoi on va les étudier plus en détails. Voici une liste non exhaustive de fonctions PCRE :

    preg_match_all — Expression rationnelle globale
    preg_match — Expression rationnelle standard
    preg_quote — Protection des caractères spéciaux des expressions rationnelles
    preg_replace_callback — Rechercher et remplacer par expression rationnelle standard en utilisant une fonction de callback
    preg_replace — Rechercher et remplacer par expression rationnelle standard
    preg_split — Éclate une chaîne par expression rationnelle

    Nous allons utiliser la fonction preg_match() pour nos exemples. Mais avant de continuer voici un petit extrait du manuel php sur l’utilisation de cette fonction:

    Fontion PHP preg_match - description


    int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags [, int $offset ]]] )

    Analyse subject pour trouver l’expression qui correspond à pattern .

    Liste de paramètres :

    pattern

    Le masque à chercher, sous la forme d’une chaîne de caractères.

    subject

    La chaîne d’entrée.

    matches

    Si matches est fourni, il sera rempli par les résultats de la recherche. $matches[0] contiendra le texte qui satisfait le masque complet, $matches[1] contiendra le texte qui satisfait la première parenthèse capturante, etc.

    Valeurs de retour :

    preg_match() retourne le nombre de fois où le masque pattern a été trouvé. Cela peut aller de 0 (pas de solution) à un 1 car preg_match() s’arrête dès qu’elle a trouvé une première solution.
    preg_match() retourne FALSE si une erreur survient.