mentral
Messages postés56Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention22 janvier 2008
-
21 janv. 2008 à 22:48
codefalse
Messages postés1123Date d'inscriptionmardi 8 janvier 2002StatutModérateurDernière intervention21 avril 2009
-
22 janv. 2008 à 09:19
Bonjour,
Je suis en train de coder un script qui récupère une page HTML et l'analyse pour en extraire des informations. Pour cela, j'utilise file_get_contents(). Après avoir tourné en rond pendant un certain temps, j'ai compris que mon problème venait de l'encodage. Cependant, les fonctions mb_xxx() ne parviennent pas à venir à bout de ce code HTML, et iconv() non plus.
Ce qui fonctionne, c'est de se rendre à ladite URL, d'afficher le code source, de le copier/coller dans un bête fichier texte, puis de lancer le script avec comme input ce fichier texte au lieu de la page HTML et en remplaçant les fonctions strpos(), strlen() et substr() de base par leurs équivalents en mb_xxx().
mentral
Messages postés56Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention22 janvier 2008 21 janv. 2008 à 23:22
La page que j'appelle est en l'occurence : http://finance.yahoo.com/q/pr?s=FLWS L'encodage est apparemment du ISO-8859-1 mais il est reconnu comme UTF-8.
Le truc est le suivant: j'ai toute une série de fonctions strpos(), strlen() et substr() pour analyser ce code HTML. Je les ai toutes mises en mb_xxx().
Cas 1) je charge le code HTML en appelant file_get_contents("http://finance.yahoo.com/q/pr?s=FLWS", "r"); et là rien ne marche car les fonctions mb_xxx() ne reconnaissent rien, et leurs équivalentes sans mb_ ne marchent pas non plus.
Cas 2) plutôt que de charger le code HTML par le script PHP, je vais manuellement sur le site puis j'enregistre le code par Ctrl+C et Ctrl+V dans un fichier texte. Au début du script, je charge le fichier texte au lieu de charge l'URL et là toutes les fonctions en mb_xxx() fonctionnement correctement et parsent correctement le code HTML.
mentral
Messages postés56Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention22 janvier 2008 22 janv. 2008 à 00:48
Je viens de réessayer en encodant mon ficher de code PHP de toutes les façons possibles et imaginables, et/ou de coder en utf-8 chaque chaîne de caractère utilisée dans les strpos() etc.
Rien à faire. La seule chose qui fait marcher le script c'est de sauvegarder manuellement la page web depuis Firefox vers le disque dur puis de faire tourner le script sur ce fichier-là au lieu d'inclure l'URL directement.