Magazine High tech

Fonction PHP qui supprime les caractères spéciaux

Publié le 19 mars 2010 par Nicko_73

Une fonction qui permet la suppression des caractère spéciaux est toujours utile quand on manipule des chaines des caractères pour le formatage des URL par exemple.

La fonction suivante va permettre de supprimer les caractères spéciaux d’une chaine de caractères pour les remplacer par celui de notre choix qui sera dans cette exemple, le tiret.

function StripSpecialCaracter($value, $glue) {
     $pieces = array(' ','/','.',';',',','?','!','§',':','%',
                     '*','$','£','}','+','=','°',']',')','(',
                     '[','@','^','_','\\','`','|','\'','"','~',
                     '&','²');
 
     foreach($pieces as $piece) {
         $value = str_replace($piece, $glue, $value);
     }
 
     return $value;
 }

La variable $pieces regroupe l’ensemble des caractères que l’on ne souhaite pas faire apparaître dans l’URL. Ensuite, on décompose ce tableau en créant une boucle avec la fonction foreach de PHP. Et on utilise str_replace qui se charge de trouver un caractère dans notre chaine de caractère et de le remplacer par un autre. Cette fonction prend trois paramètres :

  • $piece : est un caractère que l’on souhaite trouver.
  • $glue : est le caractère de remplacement.
  • $value : est la chaine de caractère ou l’on effectue la recherche.

Une fois les caractères replacés, on retourne notre nouvelle chaine dans la variable $value. Cette fonction donnerait le résultat suivant sur notre titre d’exemple :

  • Titre original : Notre titre à des caractères accentués, ainsi que des caractères spéciaux ! Un tutoriel présenté sur le site de Web-codeur
  • Titre sans les caractères spéciaux : Notre-titre-à-des-caractères-accentués-ainsi-que-des-caractères-spéciaux-Un-tutoriel-présenté-sur- le-site-de-Web-codeur

Après, libre à vous de modifier la liste des caractères à remplacer.


Retour à La Une de Logo Paperblog

A propos de l’auteur


Nicko_73 4 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte