Easy-Micro


LANGAGE Langage PHP
Expréssions régulières

Les expressions régulières en PHP

Syntaxe: ereg(expression régulière, chaîne);

La fonction ereg() 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. Les résultats seront enregistés dans le troisième argument regs. $regs[1] contiendra la première parenthèse capturante, $regs[2] la deuxième et ainsi de suite.


Exemple: Transformation d'une date au format MM-DD-YYYY en DD/MM/YYYY

<html>
<body>
<?php
$madate = date("m-d-Y");
if (ereg ("([0-9]{1,2})-([0-9]{1,2})-([0-9]{4})", $madate, $regs)) {
echo "Date transformée : $regs[2]/$regs[1]/$regs[3]";
} else {
echo "Format de date invalide : $madate";
}
?>
</body></html>

Résultat :
Date de départ: 10-16-2013
Date transformée : 16/10/2013

Note sur ce résultat:
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}). "$regs[x]" permet d'appeler et d'écrire ces 3 blocs avec un formatage précis.

Exemple de récupération et transformation d'une URL

<?php
if (ereg("([a-z]*)/([a-z]*))", $page, $regs)) {
$premier = ucfirst($regs[1]); $second = ucfirst($regs[2]);
$newpage = " - $premier > $second "; }
else { $newpage = " - Accueil"; }
?>
<html><head>
<title><?php if(isset($page)) {echo $newpage;} else { echo "";}?></title>
</head></html>

Résultat de départ: langage/php_10
Résultat d'arrivée: - Langage > Php

Note sur ce résultat:
La fonction ereg 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!).

Exemple de vérification de code postal

<?php
if ( ($codepostal != "") && (!ereg("^[0-9]{5}$",$codepostal)) ) {
echo "Votre code postal doit être composé de 5 chiffres."; }
?>

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[])

Même exemple avec la nouvelle fonction preg_match (PHP 5.3) :

<?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 !";}
?>

Attention de bien noter que la syntaxe de l'expression régulière ci-dessus n'est pas tout à fait la même.


Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Lundi 25 mars 2019 - Semaine 13 - Saint Humbert (Demain: Sainte Larissa)
Aujourd'hui, c'est l'anniversaire de Marcia Cross (1962-57 ans), comédienne américaine (rôle de Bree Van de Kamp dans Desperate Housewives). Autre 25 mars: 1918 : décès à Paris du compositeur français Claude Debussy. 1984 : Alain Prost gagne le grand prix de Formule 1 du Brésil.
Haut de page Easy-Micro