Bienvenue sur le site des Expressions Régulières Icone page d'accueil - Les expressions régulières php Accueil   Icone articles sur les expressions régulières en php Articles d'Expreg - Billets de Fred   Icone nos regex - Les expressions régulières php Les regex d'Expreg Icone mail - Les expressions régulières php

L'équivalence et les fonctions standards

Description de l'équivalence

Il est toujours très attractif pour celui qui aime les regex de se laisser aller à sa passion dans, quasi, tous les cas de figure. C'est très tentant en effet !
Mais il faut avouer qu'il est idiot de vouloir réinventer la roue à chaque instant et c'est pour cette raison que j'aborde ce petit chapitre sur l'équivalence.
Pourquoi faire une regex alors que PHP possède des fonctions natives qui réalisent le même travail ?
Comme dit ci-dessus, c'est totalement idiot !

Dans le traitement des chaînes de caractères, la règle à suivre est la suivante :
Bison et les expressions rationnelles en php

regex

Il faut toujours privilégier la fonction standard PHP à la création d'une regex effectuant le même travail.



Exemples d'équivalences

Fonction PHP Même fonction Regex

nl2br($ch) preg_replace("\n",'`<br />`',$ch);

ltrim($ch) preg_replace('`^\s+`','',$ch);

strcmp($ch1,$ch2) preg_match('`^'.$ch1.'$`',$ch2);

strip_tags($ch) preg_replace('`<[^>].+>`','',$ch);

stripslashes($ch) preg_replace('`\\\`','',$ch);

strtok($ch,$op) preg_split('`'.$op.'`',$ch);

strtr($ch, 'a','@') preg_replace('`a`','@',$ch);

Bison et les expressions rationnelles en php
N'oubliez d'ailleurs pas une des fonctions principales de substitution en php
str_replace();
Dans bien des cas, elle fera des merveilles en lieu et place de ereg_replace() ou preg_replace()


Allez, dans la foulée, je vous donne quelques fonctions standard et leur description

Tableau des fonctions standard

Libellé Descriptif

nl2br(); remplace les sauts de ligne \n par la balise xhtml <br/>

ucfirst(); mise en majuscule du premier caractères de la chaîne

ucwords(); mise en majuscule du premier caractère de chaque mot de la chaine

strtoupper(); mise en majuscules de la chaine

strtolower(); mise en minuscules de la chaîne

wordwrap(); fonction qui ajoute la césure (voir manuel php - fonction wordwrap)

substr_replace() substr_replace($ch1,$ch2,$pos,$n) remplace $n caractères depuis $pos dans $ch1 par $ch2

substr_count() substr_count($ch1,$ch2) compte le nombre d'occurence de $ch2 dans $ch1

strpos() strpos($ch1,$ch2[,$n]) recherche la première occurence $ch2 dans la chaine $ch1 à partir de la position $n (par défaut au début)

strrpos() strrpos($ch1,$ch2) même principe que strpos mais un caractère en partant de la fin de la chaine.

strrev() strrev($ch1) inversion de la chaîne

str_repeat() str_repeat($ch1,$n) répète la chaine $ch1 autant de fois que la valeur de $n

str_pad() str_pad($ch1,$n [,$ch2 [,$type]]) complète la chaîne $ch1 avec $n fois $ch2 ou $n espaces par défaut en fin de chaine par défaut. Le quatrième argument $type permet de spécifier l'endroit de l'ajout : STR_PAD_LEFT ==> pour ajouter au début, STR_PAD_BOTH ==> pour ajouter de chaque côté de la chaine.

strlen() strlen($ch1) retourne la taille d'une chaîne (nombre de caractères)

ord() ord($car) retourne la valeur ASCII du caractère

chr() chr($car) fonction réciproque de la fonction ord()

chunk_split() chunk_split($ch1 [,$n [,$ch2]]) découpe (morcelle) la chaine $ch1 tous les $n caractères par insertion de $ch2

strtok() strtok($ch1,$sep) découpe (morcelle) la chaine via le séparateur $sep

explode() explode($sep,$ch1 [,$n]) scinde la chaîne $ch1 en au plus $n éléments en utilisant le séparateur $sep. Cette fonction retourne un tableau.

implode() implode($sep,$ch1) fonction réciproque de explode. Retourne une chaine de caractères en utilisant le séparateur

ltrim() ltrim($ch1) supprime les espaces en début de la chaîne

rtrim() rtrim($ch1) supprime les espaces en fin de la chaîne

trim() trim($ch1) supprime les espaces en début et fin de la chaîne

htmlentities() htmlentities($ch1) convertit tous les caractères spéciaux en leur entité HTML : exemple < devient &lt; voir aussi htmlspecialchars()

addslashes() addslashes($ch1) échappe les caractères " et ' en les faisant précéder d'un antislash \

stripslashes() stripslashes($ch1) réciproque de addslashes() enlève les \

quotemeta() quotemeta($ch1) ajoute un antislash devant les caractères suivants :
. \\ + * ? [^] ($)

strstr() strstr($ch1,$ch2) retourne le contenu de $ch1 depuis la première occurence de $ch2 jusqu'à la fin de la chaine.

strstr() stristr($ch1,$ch2) identique à strstr mais insensible à la casse..

strchr() strchr($ch1,$ch2) retourne le contenu de $ch1 depuis la dernière occurence de $ch2 jusqu'à la fin de la chaine.

substr() strstr($ch1,$i, [,$n]) retourne une sous-chaîne de $ch1 débutant à la position $i jusqu'à la position $n

strcmp() strcmp($ch1,$ch2) compare en binaire les deux chaînes - Retourne un entier positif si $ch1>$ch2, négatif si $ch1<$ch2 et nul si $ch1=$ch2

strncmp() strncmp($ch1,$ch2,$i) compare en binaire les deux chaînes sur les $n premiers caractères - Retourne un entier positif si $ch1>$ch2, négatif si $ch1<$ch2 et nul si $ch1=$ch2

strcasecmp() strcasecmp($ch1,$ch2) comme strcmp mais insensible à la casse

strncasecmp() strncasecmp($ch1,$ch2) comme strncmp mais insensible à la casse

strnatcmp() strnatcmp($ch1,$ch2) comme strcmp mais dans l'ordre naturel

strnatcasecmp() strnatcasecmp($ch1,$ch2) comme strcasecmp mais dans l'ordre naturel


Il y en a d'autres que je vous laisse le soin d'aller vister à cette adresse :
>>> Cf->Doc PHP : Chaînes de caractères


Rédaction Yves Maistriaux :: Mai 2003 Dernière mise à jour :: Décembre 2005


European Cards - Hosting-Ec Validation W3C European Cards - Hosting-Ec Validation W3C © 2003 - 2008 www.expreg.com - Toutes reproductions interdites sans l'autorisation écrite des auteurs
:::::::::: Design an Hosting by : European Cards Sprl ::::::::::