IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expression régulière et gestion des accents et caractères spéciaux [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut Expression régulière et gestion des accents et caractères spéciaux
    Bonjour,

    Est-il possible avec les expressions régulières de :
    1. enlever les accents d'une chaine de caractère et de les remplacer par leur équivalent sans accent ?
    2. supprimer ensuite les caractères spéciaux de cette chaine ?

    Merci de m'indiquer comment faire si ma requête est réalisable avec les expressions régulières.
    N'oubliez pas le tag et

  2. #2
    Membre confirmé Avatar de LeGilou
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 488
    Points : 531
    Points
    531
    Par défaut
    Bonjour,

    Un truc comme ça devrait aller :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $texte = strtr($texte,
         'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
         'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    Gillou

  3. #3
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Merci LeGilou.
    Je me suis inspiré de ton code pour mettre en place cette petite fonction qui solutionne mon problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	public function replaceAccent($texte) 
    	{
     
    	 $caraAccent= array("¥" => "Y", "µ" => "u", "À" => "A", "Á" => "A", "Â" => "A", "Ã" => "A", "Ä" => "A", "Å" => "A", "Æ" => "A", "Ç" => "C", "È" => "E", "É" => "E", "Ê" => "E", "Ë" => "E", "Ì" => "I", "Í" => "I", "Î" => "I", "Ï" => "I", "Ð" => "D", "Ñ" => "N", 
    	 "Ò" => "O", "Ó" => "O", "Ô" => "O", "Õ" => "O", "Ö" => "O", "Ø" => "O", "Ù" => "U", "Ú" => "U", "Û" => "U", "Ü" => "U", "Ý" => "Y", "ß" => "s", "à" => "a", "á" => "a", "â" => "a", "ã" => "a", "ä" => "a", "å" => "a", "æ" => "a", "ç" => "c", "è" => "e", "é" => "e", "ê" => "e", "ë" => "e", "ì" => "i", "í" => "i", "î" => "i", "ï" => "i", "ð" => "o", "ñ" => "n", "ò" => "o", "ó" => "o", "ô" => "o", "õ" => "o", "ö" => "o", "ø" => "o", "ù" => "u", "ú" => "u", "û" => "u", "ü" => "u", "ý" => "y", "ÿ" => "y"); 
    	 $sansAccent = strtolower(trim(strtr($texte, $caraAccent))); 
    	 return $sansAccent; 
     
    	}
    Je travaille avec Zend Framework. J'ai donc crée un helper avec cette fonction pour pouvoir l'utiliser n'importe où dans mon projet.
    N'oubliez pas le tag et

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    je récupère des valeurs comme ceci

    foreach($mat as $matlabel):
    echo "<li>". $matlabel[label]."</li>";
    endforeach;

    sébastion legros
    abro lédacos


    j'ai une liste avec des accents. j'ai essayé de les supprimer avec vos codes mais, il apparait que la 1er lettre.
    Pourquoi ?

  5. #5
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    t'as iconv ? compilé avec la libiconv ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des accent circonflexe dans Expression Blend
    Par Gigi070 dans le forum Expression Studio
    Réponses: 0
    Dernier message: 27/01/2010, 16h07
  2. Réponses: 4
    Dernier message: 14/11/2008, 21h00
  3. Réponses: 3
    Dernier message: 30/10/2008, 10h05
  4. affichage des accents et caractères spéciaux
    Par sarahG dans le forum Langage
    Réponses: 7
    Dernier message: 05/06/2008, 17h37
  5. [Conception] Gestion des accents dans une base de données
    Par MiJack dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 07/07/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo