Parsage d'un flux XML, les accents = découpe du texte [Résolu] - PHP - Programmation
Marsh Posté le 16-01-2008 à 19:03:08
A mon avis c'est un problème d'encodage (UTF-8...etc), mais quoi qu'il en soit tu te casses la tête. Il existe de base dans PHP 5 un parseur XML justement nommé SimpleXML.
Regarde par ici :
http://stephaneey.developpez.com/t [...] utes/#L2.2
Marsh Posté le 16-01-2008 à 19:25:49
Malheureusement, je n'ai pas PHP5 à disposition et je ne peux en aucun cas l'installer...
Marsh Posté le 17-01-2008 à 00:55:49
Bonsoir Babasss,
Comme le disait CyberDenix, je pense aussi que c'est un problème d'encodage UTF8.
Aussi je t'invite à regarder le code ci-dessous il devrait t'apporter, je l'espère, des pistes de recherches.
Code :
|
Marsh Posté le 17-01-2008 à 09:37:40
Dans ton exemple, tu construis un fichier xml. Moi, mon soucis est d'exploiter un fichier xml qui m'arrive d'un serveur.
Sinon, pour rebondir, il s'agit bien d'un problème d'encodage UTF-8 mais au niveau du serveur. J'utilise EasyPhp 2.0.0.0 pour développer et mon code ne marche pas, si je l'envoie sur une page perso de Free, le script marche mieux (il reste un problème avec les quotes, mais les accents passent).
Je suis donc en train de chercher comment régler ca ....
Marsh Posté le 17-01-2008 à 13:17:10
Quelques axes de réflexion :
http://blog.neovov.com/index.php?2 [...] e-en-utf-8
Les rares fois où j'ai eu un problème, c'était parce que mon fichier n'était pas bien enregistré en UTF-8 sans BOM (PS-Pad est mon sauveur) ou à cause de la partie base de données (ce qui n'est pas ton cas).
Tu peux également tester des
pour cerner le problème.
NB : il se peut aussi que le xml que tu reçois soit encodé en ISO8859-1, malgré la présence de l'entête <?xml version='1.0' encoding='UTF-8'?>.
Marsh Posté le 17-01-2008 à 13:55:28
Merci bien pour la doc, je vais me pencher sur les problèmes Apache et Php.
Sinon, pour le flux étant donné que c'est notre ami à tous "Google" qui me l'envoie, j'ai tendance (peut-être à tort) à les croire...
Marsh Posté le 17-01-2008 à 23:52:52
Bon alors, j'ai plus réussi à contourner mon problème. En fait, je développais en PHP5 et cela posait visiblement qqs problèmes. En repassant en PHP4, cela marche très bien....
Je ne sais pas très bien pourquoi... (peut-être mes réglages de PHP sont différents entre 4 et 5 ?)
Marsh Posté le 18-01-2008 à 00:40:35
Je ne sais pas trés bien comment j'ai fait mais finalement ca marche en PHP4 (> 4.3) et PHP5 alors je mets le code en espérant que cela serve à d'autre :
Code :
|
Marsh Posté le 16-01-2008 à 12:07:41
Bonjour,
Je rencontre un problème bloquant en Php sur du parsage XML : il me fait une réaction assez étrange avec les accents.
En effet, si j'essaye de parser le flux suivant :
<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
<channel>
<item>
<title>La hotline de Microsoft rappelle un utilisateur 10 ans trop tard</title>
<description>Voilà une histoire qui n'est pas banale, mais qui illustre bien comment une petite erreur peut changer la vie d'un service client. L'histoire en question est celle d'un homme qui a appelé le service technique de Microsoft le 7 janvier 1998 pour ...</description>
</item>
</channel>
</rss>
il va m'indiquer pour la balise title : "La hotline de Microsoft rappelle un utilisateur 10 ans trop tard" => C'est corect
Mais pour la balise desciption, il va me l'afficher en deux temps :
et comme je stocke les résultats dans un tableau, il me décale les colonnes et le résultat est horrible.
En fait, il fait ce problème uniquement sur le premier caractère spécial qu'il rencontre (pour les suivants, le fonctionnement est normal).
Je sollicite votre aide pour :
Merci d'avance de votre aide
NB : POur info le code de mon scipt ci-dessous
Message édité par babasss le 18-01-2008 à 00:45:12
---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm