Table des matières
Niveau
..........
En rapport...

Filtrage de caractères

Il se peut que vous deviez supprimer tous les caractères spéciaux d'une chaîne…
Par exemple, pour être sûr que votre chaîne est un nom de fichier valide (sans accents, sans slash ou autre fioriture…

Voici une petite fonction basée sur les expressions régulière qui va “nettoyer” votre chaîne.

code

php
function filter($in) {
	$search = array ('@[éèêëÊË]@i','@[àâäÂÄ]@i','@[îïÎÏ]@i','@[ûùüÛÜ]@i','@[ôöÔÖ]@i','@[ç]@i','@[ ]@i','@[^a-zA-Z0-9_]@');
	$replace = array ('e','a','i','u','o','c','_','');
	return preg_replace($search, $replace, $in);
}

Fonctionnement

La variable $search est un tableau qui correspond à des expressions régulières.
$replace est la correspondance…
Par exemple :
[éèêëÊË] sera remplacé par “e”

on remarque un “i” après le @ de fin de chaque expression.
Il s'agit du commutateur “insensible a la casse”
Pas fondamentalement utile ici mais on ne sait jamais.

La dernière expression ([^a-zA-Z0-9_]) est différente.
Après avoir remplacé tous les caractères accentué par leur équivalent et les espace par des underscores on par du principe que tous caractères autre que alphanumérique est à supprimer. C'est le rôle de cette expression.


iDo 26/04/2006 17:08