Easy-Micro

LANGAGE Langage PHP
Expréssions régulières

Les expressions régulières en PHP

Formation PHP par Easy-Micro Fonction preg_match()

La fonction preg_match() recherche dans une chaîne les séquences de caractères qui correspondent au masque, comme par exemple, ([0-9]{4}) qui recherche une séquence de 4 chiffres.

Syntaxe: preg_match(expression régulière, chaîne, [sortie]);

Les résultats seront enregistés dans le troisième argument $result_Pattern. $result_Pattern[1] contiendra la première parenthèse capturante, $regs[2] la deuxième et ainsi de suite. L'indice 0 du tableau $result_Pattern contient la variable de départ.

Exemple: Transformation d'une date au format MM-DD-YYYY en DD/MM/YYYY
<html>
<body>
<?php
$maDate = date("m-d-Y");


$pattern = '/^([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})/'; // création du modèle

// le modèle ($pattern) permet de découper la variable $maDate en différente parties stockées dans un tableau ($result_Pattern)
if(preg_match($pattern, $maDate, $result_Pattern)) {
    echo 'Date de départ : '.$result_Pattern[0].'
'; // l'indice 0 du tableau contient l'origine de la variable echo 'Date transformée : '.$result_Pattern[2].'/'.$result_Pattern[1].'/'.$result_Pattern[3]; } // Exercice réalisé avec la promo DWWM 2021 le 9 mars 2021 ?> </body></html>
Résultat : Date de départ: 10-16-2013 - Date transformée : 16/10/2013

L'expression régulière reproduit le format de base recherché : 2 bloc de 1 ou 2 chiffres de 0 à 9, soit ([0-9]{1,2}) suivit d'1 bloc de 4 chiffres de 0 à 9, soit ([0-9]{4}).

"$result_Pattern[x]" permet d'appeler et d'écrire ces 3 blocs avec un formatage précis.

La fonction preg_match récupère une chaîne ($page) dans une variable de type Array ($regs) en la découpant suivant le code spécifié ("([a-z]*)/([a-z]*)). L'idée est de récupérer le contenu d'une variable (ici $page) qui contient le chemin de la page affichée, soit "langage/php_10". On transforme ensuite cette variable et on l'affiche dans la barre des titres du navigateur. Vous pouvez voir une adaptation Easy-Micro de ce script dans la barre des titres de votre navigateur (la haut!).

<?php
$codepostal = $_POST['codepostal'];

if ( ($codepostal != "") && (!preg_match("/^[0-9]{5}/",$codepostal)) ) {
   echo "Votre code postal doit être composé de 5 chiffres.";
}
else {
   echo "toutivabene !";
}

Note: code à saisir dans un fichier de traitement de formulaire après récupération du contenu d'un champ de code postal dans une variable $codepostal (via la variable superglobale $_POST[])

Formation PHP par Easy-Micro Fonction ereg()

⚠ Attention : L'ancienne fonction ereg est obsolète depuis PHP 7.3


< Page précédente LANGAGE PHP Page suivante >