Les Allergies
Alimentaires

PHP - Nettoyer une chaîne de caractères

Voici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting.

Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères spéciaux et en remplaçant les espaces par des tirets. Par exemple : "Café noir" donnera "cafe-noir".

Voici la fonction en question :
function string2url($chaine) {
	$chaine = trim($chaine);
	$chaine = strtr($chaine,
"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
	$chaine = strtr($chaine,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz");
	$chaine = preg_replace('#([^.a-z0-9]+)#i', '-', $chaine);
        $chaine = preg_replace('#-{2,}#','-',$chaine);
        $chaine = preg_replace('#-$#','',$chaine);
        $chaine = preg_replace('#^-#','',$chaine);
	return $chaine;
}

Exemple d'utilisation :
<?php
echo string2url('Comment Ça Marche, c'est le meilleur site !');
// Donnera : comment-ca-marche-c-est-le-meilleur-site
?>
Publié par avion-f16 - Dernière mise à jour le 28 octobre 2009 à 18:37 par marlalapocket
Ce document intitulé « PHP - Nettoyer une chaîne de caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Suggestions
  •  PHP - Nettoyer une chaîne de caractères
  •  Sécuriser son code PHP » Fiches pratiques : Indépendamment de la sécurisation du système d'exploitation du serveur, du serveur HTTP lui-même et des options de configuration de PHP (php.ini), il est important de veiller à sécuriser les données provenant des utilisateurs (via les formulaires ou...
  •  [php] Comment separer une chaine ? (Résolu) » Meilleure réponse: <?php $donnee=explode(",",$chaine); //chaines séparées par une virgule echo $donnee[1]; echo $donnee[2]; ?> donnee[1] contiendra la premiere chaine avan la virgule et donnee[2] celle apre la virgule
  •  [PHP] Envoi de chaines de caractères spéciaux (Résolu) » Bonjour, Je rencontre un petit problème avec l'envoi d'une chaîne de caractère comportant des caractères spéciaux, tels que le "$" ou le "|". Existe-t'il une fonction permettant l'envoi de ces derniers? J'arrive à envoyer tous les autres avec la...
  •  Php : comment remplacer chaine de caractères? (Résolu) » Bonjour, j'ai un une variable $texte qui est égale à ceci : $texte=' <a href="http://www.commentcamarche.net">ccm</a> <a href="http://www.google.fr">google</a>'; Et moi je cherche le code php qui permet d'ajouter un target="_blank" à chaque lien...
  •  Php, parcourir une chaine de caractère (Résolu) » Meilleure réponse: salut, t'as quand même pas dû chercher des masses ! -:oþ $chaine = 'ABCD071'; echo $chaine[3]; Accès et modification d'une chaîne, par caractère On peut accéder et modifier les caractères d'une chaîne de caractères en spécifiant sa posi
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?
Quelques fonctions utiles
PHP - Pagination