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 :

Remplacement des accents par des lettres sans accents [PHP 5.1]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut Remplacement des accents par des lettres sans accents
    Bonjour à tous,

    J'utilise une fonction php pour remplacer les lettres avec accents par des lettres sans accents, voici la fonction utilisée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function retireAccents($chaine)
    {	
    	$patterns = array('/[àáâãä]/i','/[éèëê]/i','/[ç]/i','/[ìíîï]/i','/[ñ]/i','/[òóôõö]/i','/[ùúûü]/i','/[ýÿ]/i');
    	$replacements = array('a','e','c','i','n','o','u','y');
     
    	$chaine = preg_replace($patterns, $replacements, $chaine);
    	return $chaine;
     
    	}
    mais ceci semble ne pas fonctionner correctement .

    Pour par exemple le mot étui je voudrais avoir le mot etui grâce à la fonction utilisée.

    Comment peut on resoudre ce problème ?

    Cordialement .

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 116
    Points : 163
    Points
    163
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Function removeaccents($chaine)
        {
         $string= strtr($chaine,
       "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
       "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
     
         return $string;
        } ;
    Au pire cette fonction fonctionne très bien aussi

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Merci,

    J'ai essayé cette fonction mais ça ne marche pas de mon côté .

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 116
    Points : 163
    Points
    163
    Par défaut
    Etonnant, et je viens de tester ta fonction et ça fonctionne bien sous Wamp.

    Qu'est ce que cette chaine te renvoit?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo retireAccents("c'est l'étè prêt-à-porter étui");

    Ou peut-être du à un problème d'encodage, tu as fais un echo ou tu utilises cette fonction pour le résultat d'une requête?

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    cela me donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c'est l'n©tn¨ prnªt-no-porter n©tui

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 241
    Points
    20 241
    Par défaut
    Tu peux également essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str = "c'est l'étè prêt-à-porter étui"
    echo iconv('UTF-8','ASCII//TRANSLIT',$str);
    A testé car selon l'environnement le résultat peux ne pas convenir

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Merci,

    mais avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $str = "c'est l'étè prêt-à-porter étui"
    echo iconv('UTF-8','ASCII//TRANSLIT',$str);
    j'ai ceci comme résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c'est l'?t? pr?t-?-porter ?tui

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2009
    Messages : 116
    Points : 163
    Points
    163
    Par défaut
    Cela doit venir d'un problème d'encodage, pas de la fonction alors.

    Et quand tu fais juste un echo ça marche bien?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "c'est l'étè prêt-à-porter étui";

  9. #9
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Cela me donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c'est l'étè prêt-à -porter étui

  10. #10
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Quel est l'encodage de tes fichiers ?
    Quel est le charset envoyé au navigateur ?

  11. #11
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Pour la page concerné j'ai une balise meta avec la valeur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    Je n'utilise pas la fonction php header() lors du chargement de la page .

  12. #12
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Ok, et du côté de l'encodage des fichiers .php ?

  13. #13
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Au niveau de l'encodage du fichier .php je n'ai pas d'idée
    car j'utilise Dreamweaver .

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Même généré par DreamWeaver, tu as forcément un script PHP. Ouvre-le avec notepad++ et regarde l'encodage

  15. #15
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2007
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2007
    Messages : 365
    Points : 139
    Points
    139
    Par défaut
    Bonjour à tous,

    J'ai finalement ouvert le fichier en question avec Textpad si je sélectionne "enregistrer sous", la boite de dialogue me propose d'enregistrer par défaut sous UTF8 en encodage, j'ai enregistré le fichier en encodage ANSI . La fonction de remplacement des accents fonctionne . Je pense que depuis la création du fichier avec Dreaweaver, il était sous UTF8 .

    Merci à tous .

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

Discussions similaires

  1. Formulaire en utf-8 remplaces accents par des "?"
    Par seoguy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 25/04/2013, 16h06
  2. Réponses: 3
    Dernier message: 15/07/2010, 14h10
  3. remplacer des chiffres par des lettres, & vis versa
    Par Argorate dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/08/2006, 19h36
  4. Remplacer des boutons par des menus déroulants?
    Par drthodt dans le forum Access
    Réponses: 3
    Dernier message: 20/09/2005, 17h37
  5. Réponses: 5
    Dernier message: 30/05/2005, 16h58

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