109 votes

Fonction pour renvoyer uniquement des caractères alphanumériques d'une chaîne?

Je recherche une fonction php qui prend une chaîne d'entrée et renvoie une version assainie de celle-ci en supprimant tous les caractères spéciaux ne laissant que des caractères alphanumériques.

J'ai besoin d'une deuxième fonction qui fait la même chose mais ne retourne que les caractères alphabétiques AZ.

Toute aide très appréciée.

235voto

Mark Byers Points 318575

Avertissement: Notez que l'anglais n'est pas restreint à-Z.

Essayez ceci pour enlever tout sauf a-z, A-Z et 0-9:

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);

Si votre définition de alphanumérique comprend des lettres en langues étrangères et obsolètes scripts, alors vous aurez besoin d'utiliser les classes de caractères Unicode.

Essayez ceci pour ne laisser place qu'A-Z:

$result = preg_replace("/[^A-Z]+/", "", $s);

La raison de l'avertissement est que des mots comme cv contient la lettre é qui ne sera pas compensée par la présente. Si vous souhaitez obtenir une liste spécifique de lettres ajuster l'expression régulière pour inclure ces lettres. Si vous souhaitez faire correspondre toutes les lettres, utilisez le caractère approprié des classes comme mentionné dans les commentaires.

0voto

Mark Baker Points 90240

Plutôt que preg_replace, vous pouvez toujours utiliser les fonctions de filtrage de PHP en utilisant la fonction filter_var () avec FILTER_SANITIZE_STRING.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X