bobdeo Posté 1 Janvier 2008 Posté 1 Janvier 2008 Salut et bonne année ! J'essaie de remplacer "Étui acrylique transparent façade métal Nano 2G" par son équivalent sans accent. Totu est dans les commentaires... <?php$name = 'Étui acrylique transparent façade métal Nano 2G';echo $name;// pas bon -> Ãtui acrylique transparent façade métal Nano 2G// j'encode en utf8 pour bon affichage$name = utf8_decode($name);// c'est ok -> Étui acrylique transparent façade métal Nano 2G// on remplace les accents$name = strtr($name,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');echo $name;// pas bon -> Ytui acrylique transparent faYiade mYotal Nano 2G?> Help ! merci pour votre aide.
captain_torche Posté 1 Janvier 2008 Posté 1 Janvier 2008 Tu peux essayer avec cette fonction : <?phpfunction enleve_accents($chaine) {// Transforme la chaîne en son équivalent HTML, (à devient à), puis supprime les caractères superflus (ici, '&' et 'grave;')$reg = '/&(.)(acute|grave|circ|uml|cedil|ring|tilde|slash);/';return preg_replace($reg, '\1', htmlentities($chaine));}?>
bobdeo Posté 1 Janvier 2008 Auteur Posté 1 Janvier 2008 Ca marche ! merci ! j'ai aussi trouvé ça (qui tourne aussi - un peu le même principe) : function unaccent($text) { $trans = get_html_translation_table(HTML_ENTITIES); // Table des entités dans un tableau foreach ($trans as $litteral => $entity) { // 2 tableaux : un pour les caractères //accentués et un pour les autres if (ord($litteral) >= 192) { // On ignore les autres //caractères bizarres //(fractions, quotes etc) $replace[] = substr($entity, 1, 1); // Récupère le 'E' de '&Eaccute' etc. $search[] = $litteral; // Récupère la forme accentuée } } return str_replace($search, $replace, $text); }
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant