Deux fonctions méconnues ( à tort ) en PHP
Attention, cet article a été déplacé dans les archives, donc le contenu peut ne plus être à jour. A vous de voir 🙂
Lorsque je conçois un site dynamique, je suis souvent tenté de réinventer la roue pour ajouter des fonctionnalités. Des coups d’oeil jetés par dessus l’épaule de certains amis, collègues, anciens devs et autres m’ont prouvé que je n’étais pas le seul.
Pour le bien de l’Humanité ( sisi ), je vous offre sur un plateau quelques fonctions méconnues, et pourtant extremement utiles :
urldecode() : Unescape en PHP
Une chaine préparée pour une URL via Javascript, avec par exemple la fonction escape(), doit être impérativement décodée avant traitement.
Certains sont tentés de réinventer la fonction Javascript unescape() en php, alors qu’elle existe déjà sous un autre nom : urldecode();
$chaine = 'Cha%C3%AEne';
echo urldecode($chaine); // Affichera "Chaîne"
Impeccable non ?
ctype_*() : Ne pas utiliser les REGEX à tout va.
Admettons que vous attendiez une chaine de caracteres comprise entre « A » et « Z ». Vous devez évidemment vérifier son type, sinon l’univers peut s’écrouler à tout moment ( j’insiste ). Fébrilement, vous commencez à rédiger :
if(preg_match('#^([a-z]+)$#',$chaine)) {
...
Disons le franchement, l’univers a eu le temps de s’écrouler 15 fois entre temps 🙂
Je vous présente donc les fonctions ctype !
Pour remplacer notre vieille fonction, utilisons donc la liste suivante :
- ctype_alnum — Vérifie qu’une chaîne est alphanumérique
- ctype_alpha — Vérifie qu’une chaîne est alphabétique
- ctype_cntrl — Vérifie qu’un caractère est un caractère de contrôle
- ctype_digit — Vérifie qu’une chaîne est un entier
- ctype_graph — Vérifie qu’une chaîne est imprimable
- ctype_lower — Vérifie qu’une chaîne est en minuscules
- ctype_print — Vérifie qu’une chaîne est imprimable
- ctype_punct — Vérifie qu’une chaîne contient de la ponctuation
- ctype_space — Vérifie qu’une chaîne n’est faite que de caractères blancs
- ctype_upper — Vérifie qu’une chaîne est en majuscules
- ctype_xdigit — Vérifie qu’un caractère représente un nombre hexadécimal
Pour remplacer notre preg_match, nous pouvons ainsi utiliser :
if(ctype_alpha($chaine)) {
...
Plus clair, non ?
Pour les perfectionnistes, non, ce ne sont pas deux fonctions, mais plutôt deux types de fonctions 😉
Merci pour ces deux types de fonctions 🙂
Je connaissais les ctype parce qu’on en a parlé à un afterwork @ Starbucks, mais je connaissais pas urldecode qui m’a l’air super pratique 😉 Utilisation soon je pense 😛
Moi c’est l’inverse de Clem, je connaissais urldecode, mais pas les ctype_*
Merci pour l’astuce !
Merci pour ces 2 fonctions utiles.
La première je pense pas m’en servir bientot, mais ctype_*() est vraiment interessant, je vais gagner du temps grâce à toi
😉