PHP : La validation de variable avancée en utilisant « ctype »
Pour une analyse plus précise des types de caractères dans une variable, PHP nous offre la bibliothèque »ctype ». Si vous voulez vérifier les valeurs particulières à l’intérieur d’une variable, et que vous voulez le faire vite et bien, CTYPE est pour vous. Voyons comment l’utiliser.
En terme de performances, comparé à un test commun de type « is_numeric() », le contrôle de »ctype » équivalent est plus rapide pour la même tache.
Exemple de test de performances :
- ctype_digit(« 123456789« ) : 0.39640688896179 secondes
- is_numeric(« 123456789« ) : 0.47485589981079 secondes
Il y a 11 fonctions "ctype" disponibles, qui fonctionnent toutes de la même manière que "is_numeric()" par exemple : vous y passez une variable, et vous obtenez en retour vrai ou faux (true / false).
Chacune de ces fonctions correspondent à différents cas types de test, voyez le récapitulatif ci-après de ce que chaque fonction propose :
ctype_alnum() | vrais si correspond à A-Z, a-z, 0-9 |
ctype_alpha() | vrais si correspond à A-Z, a-z |
ctype_cntrl() | vrais si correspond aux caractères de contrôle ASCII |
ctype_digit() | vrais si correspond à 0-9 |
ctype_graph() | vrais si correspond à des valeurs qui peuvent être représentées graphiquement |
ctype_lower() | vrais si correspond à a-z |
ctype_print() | vrais correspond à des caractères visibles (pas d’espace) |
ctype_punct() | vrais correspond à tous les caractères non-alphanumériques (pas d’espace) |
ctype_space() | vrais si est un espace (espace, tab, saut de ligne, etc) |
ctype_upper() | vrais si correspond à A-Z |
ctype_xdigit() | vrais si correspond à un chiffre au format hexadécimal |
Les tests CTYPE sont absolus, ce qui signifie que ctype_digit() retournera faux par exemple pour la valeur « 123456789! » en raison du « ! » à la fin de la chaîne.
Exemple :
<?php $var = "123456789!"; print (int)ctype_digit($var); ?>
A noter : il n’existe pas de test pour les nombres à virgule flottante disponibles, comme ctype_digit() correspond à 0-9 de type entier. En conséquence, l’on obtiendra un retour de type faux pour 123,45 . Pour ce type de test il vous utiliser le is_float() stadard .
Pas de commentaire