La fonction PHP preg_match() va nous permettre de rechercher des motifs bien précis au sein d’une chaîne de caractères.
Syntaxe de la fonction preg_match()
preg_match (motif_a_detecter, chaine_a_traiter, tableau_reponse, debut_de_la_recherche);
- Le paramètre motif_a_detecter correspond à l’expression régulière que l’on recherche.
- Le paramètre chaine_a_traiter correspond à la chaîne de caractères que nous voulons analyser
- Le paramètre tableau_reponse est facultatif. S’il est renseigné, la fonction preg_match() retournera une réponse sous forme de tableau multidimensionnel avec comme premier élément (indice 0) un tableau comprenant 2 éléments: le motif recherché (indice 0) et la position de la première occurrence trouvée (indice 1). La fonction preg_match() s’arrête dès qu’une occurrence est détectée.
- Si le paramètre debut_de_la_recherche est renseigné, la recherche commencera à partir de l’indice fourni dans ce paramètre
Utilisation de la fonction preg_match()
En fonction des paramètres envoyés à la fonction preg_match(), son utilisation pourra varier.
Nous allons ici montrer plusieurs exemples de son exploitation.
<?php Exemple 1 $chaine = 'développement php'; $motif = '/php/'; preg_match($motif, $chaine, $answer, PREG_OFFSET_CAPTURE); print_r($answer); /* Affiche Array ( [0] => Array ( [0] => php [1] => 14 ) ) */ Exemple 2 $chaine = 'Pour tout savoir sur le développement en php'; $motif = '/php/'; if(preg_match($motif,$chaine)){ echo 'Le motif <em>' . $motif . '</em> est bien présent dans la chaîne analysée.'; } /* Affiche "Le motif /php/ est bien présent dans la chaîne analysée." */ Exemple 3 $chaine = 'Langage PHP pour le développement web'; $motif = '/php/i'; /* on ajoute le i pour rendre la recherche du motif insensible à la casse */ $chaine_2 = 'PHPmyadmin, interface de vos bases de données'; $motif_2 = '/\bphp\b/i'; /* on entoure le motif avec l'expression \b pour effectuer la recherche sur le mot entier uniquement (isolé) */ if(preg_match($motif,$chaine)){ echo 'Le motif <em>' . $motif . '</em> est bien présent dans la chaîne analysée.'; } /* Affiche "Le motif /php/ est bien présent dans la chaîne analysée." */ if(preg_match($motif_2,$chaine_2)){ echo 'Le motif <em>' . $motif_2 . '</em> est bien présent dans la chaîne analysée en tant que terme isolé.'; } else { echo 'Le motif <em>' . $motif_2 . '</em> n\'est pas présent en tant que terme isolé dans la chaîne analysée.'; } /* Affiche "La motif /\bphp\b/i n'est pas présent en tant que terme isolé dans la chaîne analysée." */ ?>