Bonjour,
Je rencontre un problème avec la fonction simplexml_load_file de php.
Je l'utilise pour parser un flux xml de type catalogue produit.
Lorsque je met mon script en ligne en indiquant:
Ca fonctionne.(l'url est plus complexe que cela, il y a des ? et & dans l'url)
si je fais:
Avec $mon_flux récupéré dans une base de donnée ça ne marcha pas.
Je pense qu'il y a un problème d'encodage de caractéres de l'url entre le moment ou j'enregistre mon url dans la base de donnée et quand je vais rechercher mon url dans ma bdd.
Quand j'enregistre mon url dans la base de donnée je fais un mysql_real_escape_string et quand je la récupére je fais un stripslashes (je ne vois pas ce qui peux poser problème)
Dans la doc php, il y a cette note:
j'ai donc essayé cela:
Ce qui ne marche pas non plus.
J'ai essayé aussi avec utf-8 encode, sans résultat.
Quelqu'un a t-il eu le problème ?
Auriez-vous des infos sur ce probléme ?
Merci d'avance.
Modifié par yann123 (11 Nov 2008 - 15:37)
Je rencontre un problème avec la fonction simplexml_load_file de php.
Je l'utilise pour parser un flux xml de type catalogue produit.
Lorsque je met mon script en ligne en indiquant:
$flux = simplexml_load_file('http://www.mon_flux.xml');
Ca fonctionne.(l'url est plus complexe que cela, il y a des ? et & dans l'url)
si je fais:
$flux = simplexml_load_file($mon_flux);
Avec $mon_flux récupéré dans une base de donnée ça ne marcha pas.
Je pense qu'il y a un problème d'encodage de caractéres de l'url entre le moment ou j'enregistre mon url dans la base de donnée et quand je vais rechercher mon url dans ma bdd.
Quand j'enregistre mon url dans la base de donnée je fais un mysql_real_escape_string et quand je la récupére je fais un stripslashes (je ne vois pas ce qui peux poser problème)
Dans la doc php, il y a cette note:
a écrit :
Note: Libxml 2 supprime la protection des caractères des URI, alors si vous voulez passer par exemple b&c comme paramètre URI à a, vous devez appeler simplexml_load_file(rawurlencode('http://example.com/?a=' . urlencode('b&c'))). Depuis PHP 5.1.0, vous n'avez plus besoin de faire cela puisque PHP le fait pour vous.
j'ai donc essayé cela:
$flux= simplexml_load_file(rawurlencode($mon_flux . urlencode('b&c')));
Ce qui ne marche pas non plus.
J'ai essayé aussi avec utf-8 encode, sans résultat.
Quelqu'un a t-il eu le problème ?
Auriez-vous des infos sur ce probléme ?
Merci d'avance.
Modifié par yann123 (11 Nov 2008 - 15:37)