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 :

Encodage UTF-8 et ISO avec file_get_contents()


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 56
    Points
    56
    Par défaut Encodage UTF-8 et ISO avec file_get_contents()
    Bonjour,

    J'ai fait un annuaire et je dois donc récupérer les données figurant dans les metas des sites soumis à l'aide de la fonction file_get_contents().
    Cet annuaire utilise le charset utf8, mon problème est que lorqu'un site est soumis avec le charset ISO, des caracteres bizarres s'affichent, j'ai donc utilisé la fonction utf8_encode() mais si le site est en utf8, ça m'affiche de nouveau des caracteres bizarroïdes...

    bref, existe-t-il une fonction qui affiche les caractères spéciaux correctement et qui prendrait en paramètre de l'utf8 ou de l'ISO?

    Merci

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    As-tu vérifié l'encodage des pages et des caractères que tu essayes de lire ?
    Si c'est encodé en ISO les caractères doivent être encodés correctement.
    Il faut d'abord tout vérifier en commençant par le début.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    salut,

    donc si j'ai bien compris, avant toute manipulation, je dois d'abords récupérer le contenu de la balise meta http-equiv, analyser son contenu, et de là encoder ou non en UTF8?

    Si oui, existet-il une fonction PHP qui permet de faire cette analyse?

    merci encore

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Non ce que je veux dire c'est que tu devrais vérifier manuellement le code html et l'encodage d'une page te posant problème...

    file_get_contents ne fait que récupèrer les données, si elles sont mal affichées à la base tu ne pourras rien y faire...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    dans mon cas, c'est impossible de vérifier manuellement l'encodage d'une page, car des sites sont soumis dans mon annuaire a partir d'un formulaire;

    on introduit l'url du site, ensuite grace a la fonction file_get_contents() , je récupère le contenu de la balise meta description ainsi que la balise title de la page du site soumis, ensuite j'affiche le tout

    et c'est là que ça coince...

    Une solution doit bien exister ... , merci quand meme

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    ok, j'ai trouvé réponse à ma question, pour ceux qui sont dans le même problème que moi ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //bon caracteres
    $GoodCharaters = array ("¡","¢","£","¤","¥","¦","§","¨","©","ª","«","¬","*","®","¯","°","±","²","³","´","µ","¶","·","¸","¹","º","»","¼","½","¾","¿","×","÷","À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë","Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý","Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","þ","ÿ");  
     
    //Mauvais caractères
    $BadCharacters = array ("¡","¢","£","¤","Â¥","¦","§","¨","©","ª","«","¬","Â*","®","¯","°","±","²","³","´","µ","¶","·","¸","¹","º","»","¼","½","¾","¿","×","÷","À","Á","Â","Ã","Ä","Ã…","Æ","Ç","È","É","Ê","Ë","ÃŒ","Í","ÃŽ","Ï","Ð","Ñ","Ã’","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ãœ","Ý","Þ","ß","à ","á","â","ã","ä","Ã¥","æ","ç","è","é","ê","ë","ì","Ã*","î","ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","þ","ÿ");  
     
    // remplacer les mauvais caracatères par les bons et encoder le tout en utf8			
    $website_description = utf8_encode(str_replace($BadCharacters ,$GoodCharaters ,$website_description));

    Je ne sais pas si c'est la manière la plus simple, mais ça fonctionne

  7. #7
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    C'est bancal mais sûrement la meilleure solution.
    Il n'en reste pas moins que tu peux vérifier MANUELLEMENT et par toi même les sites qui posent problème !
    Tu affiches le site dans le navigateur, tu affiches le source et tu regardes l'encodage du navigateur ainsi que l'encodage de la page et les caractères...
    Tu seras vite fixé...

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 56
    Points
    56
    Par défaut
    merci blueice, mais c'est impossible de faire ça manuellement, car si par exemple j'ai 1000 soumissions de sites sur mon annuaire, je ne peux pas me permettre de faire cette opération 1000 fois...

  9. #9
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 487
    Points : 5 134
    Points
    5 134
    Par défaut
    Tu deviens un petit peu lourd
    Je parle d'UNE vérification !
    C'est pour trouver si le problème ne viendrait pas de l'encodage des pages/serveur...

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

Discussions similaires

  1. Lecture de fichier: encodage utf-8 et iso-8859-1
    Par WindRider_ dans le forum Langage
    Réponses: 2
    Dernier message: 04/11/2009, 10h23
  2. [1.x] Encodage UTF-8 et ISO-8859-1
    Par Alahel dans le forum Symfony
    Réponses: 8
    Dernier message: 09/09/2008, 11h52
  3. [MySQL] Bug encodage utf-8 et ISO
    Par lolymeupy dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/08/2008, 14h59
  4. Flux RSS avec PHP : encodage UTF-8 vers ISO-8559-1
    Par eric437 dans le forum Langage
    Réponses: 1
    Dernier message: 03/08/2008, 20h56
  5. encodage UTF-8 vers ISO-8859-1
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/04/2007, 11h03

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