Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Remplacer des lettres avec accent par des lettres sans accen

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
Starguezer
Smarty n00b


Joined: 12 Jul 2007
Posts: 3

PostPosted: Thu Jul 12, 2007 11:29 am    Post subject: Remplacer des lettres avec accent par des lettres sans accen Reply with quote

Bonjour,

Depuis quelques jours je cherche desesperement de trouver comment transformer une chaine de charactères contenant des accents par une chaine n'en contenant pas afin de faire de l'URL rewriting.

J'ai bien une solution qui consiste à faire ca mais je me vois mal rajouter bout à bout une batterie de |replace pour chaque caractère accentué :s
$string|replace:"é":"e"

Donc est-ce que quelq'un aurait une solution pour moi ?

Merci de votre aide
Back to top
View user's profile Send private message
reb
Smarty Rookie


Joined: 17 Aug 2005
Posts: 23

PostPosted: Sun Jul 29, 2007 5:05 pm    Post subject: Reply with quote

c'est plutôt du ressort de PH que Smarty, mais bon :

Code:

/**
 * Convertit une chaîne avec caractères accentués en chaine ASCII
 */
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);
}


Last edited by reb on Wed May 05, 2010 10:34 pm; edited 1 time in total
Back to top
View user's profile Send private message
Starguezer
Smarty n00b


Joined: 12 Jul 2007
Posts: 3

PostPosted: Mon Jul 30, 2007 10:18 am    Post subject: Reply with quote

Nikel merci beaucoup Wink
Back to top
View user's profile Send private message
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP