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 :

[Tableaux] Remplacements d'accents avec PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 134
    Points : 77
    Points
    77
    Par défaut [Tableaux] Remplacements d'accents avec PHP
    Bonjour,
    J'ai besoin de supprimer les accents de mes chaines de caractères.
    Pour ça j'ai implémenté la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function stripaccents($string)
    {
    return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ', 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    }
    Lorsque je l'appelle de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print stripaccents("abcdé");
    voilà ce que j'obtiens:
    abcdYo

    au lieu de:
    abcde.

    Ca fait des heures que je cherche...
    Une idée d'ou peut venir le problème?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 134
    Points : 77
    Points
    77
    Par défaut
    Et avec cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function stripaccents($string)
    {
    return strtr($string,"é", "e");
    }
    J'obtiens ça:
    abcde©
    Je pense que c'est un problème d'encodage mais à part faire un:
    header('Content-type: text/html; charset=ISO-8859-1') ;
    , je ne sais pas trop quoi faire.

  3. #3
    Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Mars 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Mars 2005
    Messages : 29
    Points : 40
    Points
    40
    Par défaut
    Bonsoir,

    Ah oui tiens en effet, avec un code encodé UTF8, strtr() semble avoir du mal... Je n'ai pas vraiment de solution mais un contournement. Passe en paramètre un tableau pour le remplacement des caractères et ça devrait aller.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    function stripaccents($string)
    {
        $replacement = array("é" => "e",
                             "à" => "a",
                             "ù" => "u");
     
        return strtr($string, $replacement);
    }
     
    print stripaccents("àbcdéù");
    ?>

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 134
    Points : 77
    Points
    77
    Par défaut
    Merci pour ton contournement ikkiphenix, ça marche en effet.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2011
    Messages : 1
    Points : 0
    Points
    0
    Par défaut
    on peut aussi contourner avec du utf8_decode et s'épargner la ré-écriture du tableau :

    $string = utf8_decode($string);
    $string = strtr($string,utf8_decode('àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ'),'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
    return utf8_encode($string);

    /* en admettant que l'éditeur du fichier qu'on utilise soit en utf8 */

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

Discussions similaires

  1. problème accent avec php 5.3.1
    Par PAYASS59 dans le forum Langage
    Réponses: 2
    Dernier message: 26/01/2010, 14h25
  2. [RegEx] Remplacement des accents avec une regex
    Par benohit dans le forum Langage
    Réponses: 7
    Dernier message: 07/09/2006, 18h20
  3. [Tableaux] Imprimer avec php
    Par amarcil dans le forum Langage
    Réponses: 4
    Dernier message: 11/04/2006, 17h18
  4. [Configuration] probleme avec le remplacement des accents
    Par xtaze dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/12/2005, 19h16

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