Probleme enlever les accents, les lettres ne sont pas remplacées
diice
Messages postés
131
Date d'inscription
Statut
Membre
Dernière intervention
-
diice Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
diice Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je me bats avec une fonction de reecriture de chaine sans accent et remplacement d'espace par des _ ou -.
je comprends pas ce qui ne marche pas dans cette fonction :
par exemple :
c bon pour les majuscules, les espaces et autre caracteres de ponctuation, mais les accents a chaque fois il me met un _ a la place de la lettre sans accent !!!
est-ce que quelqu'un peut m'oreinter ? j'en ai essayé plein, et chaque fois j'ai le meme probleme !!!
merci d'avance,
je me bats avec une fonction de reecriture de chaine sans accent et remplacement d'espace par des _ ou -.
je comprends pas ce qui ne marche pas dans cette fonction :
function NoAccentTag($str) { $str = htmlentities($str); $str = strtr($str,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY'); $str = preg_replace('#&([A-za-z])(?:acute|cedil|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'oe' $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères return $str; } function RewriteName($text) { $text=strtolower($text); // $text=htmlspecialchars($text); $text=html_entity_decode($text); $text = NoAccentTag($text); $separator = "_"; // $text = mb_ereg_replace(" ", $separator, $text); $text = mb_ereg_replace("[^a-z0-9.]", $separator, $text); $text = str_replace("...","",$text); while (strstr($text, $separator . $separator)) $text = str_replace($separator . $separator, $separator, $text); if (substr($text, 0, 1) == $separator) $text = substr($text, 1); return(mb_ereg_replace($separator . "$", "", $text)); }
par exemple :
echo RewriteName('française'); // ca donne=> fran_aise
c bon pour les majuscules, les espaces et autre caracteres de ponctuation, mais les accents a chaque fois il me met un _ a la place de la lettre sans accent !!!
est-ce que quelqu'un peut m'oreinter ? j'en ai essayé plein, et chaque fois j'ai le meme probleme !!!
merci d'avance,
A voir également:
- Probleme enlever les accents, les lettres ne sont pas remplacées
- Enlever les pubs sur youtube - Accueil - Streaming
- Lettres avec accents - Guide
- Comment taper les lettres sur un clavier téléphonique iphone - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
- Comment enlever les commentaires sur word - Guide
3 réponses
Salut,
J'avais trouvé un autre script en trainant sur le web. Je m'en sert pour un site et il fonctionne très bien :
J'avais trouvé un autre script en trainant sur le web. Je m'en sert pour un site et il fonctionne très bien :
function stripAccents($str, $charset='utf-8') { $str = htmlentities($str, ENT_NOQUOTES, $charset); $str = preg_replace('#&([A-za-z])(?:acute|cedil|caron|circ|grave|orn|ring|slash|th|tilde|uml);#', '\1', $str); $str = preg_replace('#&([A-za-z]{2})(?:lig);#', '\1', $str); // pour les ligatures e.g. 'oe' $str = preg_replace('#&[^;]+;#', '', $str); // supprime les autres caractères return $str; }
merci lastshadow,
mais du coup c'est pire, il m'enleve carement les caracteres !!
c'est ca qui fout le dawa :
il n'y a que ca de différent, et en faisant les test, c ca qui fait que je n'ai plus aucun caractere de la chaine...
mais du coup c'est pire, il m'enleve carement les caracteres !!
c'est ca qui fout le dawa :
$str = htmlentities($str, ENT_NOQUOTES, $charset);
il n'y a que ca de différent, et en faisant les test, c ca qui fait que je n'ai plus aucun caractere de la chaine...
ah non, autant pour moi....
en fait je me sers de cette fonction et apres une autre qui enleve les caracteres de ponctuation pour creer un nom de page url du genre :
"article-6-j-espere-que-ca-boom"
et juste avec la fonction que tu m'as donné, quand c du texte en dur ca marche
ex :
mais j'ai des caractere bizarres dans mes liens....
ex :
et si je mets tout ca dans ma deuxieme fonction qui ajoute des tirets, j'ai plus rien !
ex :
en fait je me sers de cette fonction et apres une autre qui enleve les caracteres de ponctuation pour creer un nom de page url du genre :
"article-6-j-espere-que-ca-boom"
et juste avec la fonction que tu m'as donné, quand c du texte en dur ca marche
ex :
echo stripAccents('bébé ça pête !'); // me donne bebe ca pete
mais j'ai des caractere bizarres dans mes liens....
ex :
echo '<a href="'.stripAccents('Vénus').'">'; // me donne : VAtilde;copy;nus
et si je mets tout ca dans ma deuxieme fonction qui ajoute des tirets, j'ai plus rien !
ex :
echo '<a href="'.RewriteName('Vénus').'">'; // me donne : rien