Remplacer les caractères spéciaux d'une chaine
Posté : 11 sept. 2011, 19:56
Bonjour à tous,
Je cherche à retirer tous les caractères spéciaux d'une chaine de caractère pour pouvoir utiliser celle-ci dans une url (url rewriting).
Donc par exemple je voudrais que ma phrase : "roulée à même le sol !" devienne "roulee-a-meme-le-sol".
J'ai donc ma fonction ci-dessous qui à pour but de m'aider à obtenir ce résultat mais j'ai un problème ! Le résultat obtenu est "rouln-e-no-mn-me-le-sol"
Je ne comprends vraiment pas d'où cela peut venir et c'est pourquoi j'en appel à vous.
Merci beaucoup !
Voici ma fonction :
Je cherche à retirer tous les caractères spéciaux d'une chaine de caractère pour pouvoir utiliser celle-ci dans une url (url rewriting).
Donc par exemple je voudrais que ma phrase : "roulée à même le sol !" devienne "roulee-a-meme-le-sol".
J'ai donc ma fonction ci-dessous qui à pour but de m'aider à obtenir ce résultat mais j'ai un problème ! Le résultat obtenu est "rouln-e-no-mn-me-le-sol"
Je ne comprends vraiment pas d'où cela peut venir et c'est pourquoi j'en appel à vous.
Merci beaucoup !
Voici ma fonction :
function filtre_titre($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;
}