Grasshopper Posté 28 Mars 2008 Posté 28 Mars 2008 (modifié) Bonjour à tous, Je galère depuis ce matin sur un truc. J'ai un script qui lit un fichier xml dans lequel je souhaite remplacer une chaine : $xml = file_get_contents($fichier);$xml = str_replace("{URL}","http://www.site.tld/",$xml); Le problème, c'est que ca ne remplace rien là... Le fichier est en UTF-8 je ne sais si c'est ça le problème. (je ne peux pas les transformer en iso). Vous voyez pas d'ou vient le problème ? Modifié 28 Mars 2008 par Grasshopper
Kioob Posté 28 Mars 2008 Posté 28 Mars 2008 Hello, question (vraiment) bête : ta variable $xml, tu en fais quoi après le str_replace ?
captain_torche Posté 28 Mars 2008 Posté 28 Mars 2008 Pourquoi pas tenter un str_replace(utf8_encode("{URL}"),utf8_encode("http://www.site.tld/"),$xml);
Grasshopper Posté 28 Mars 2008 Auteur Posté 28 Mars 2008 (modifié) kioob, pour l'instant j'en fais un echo, pour voir le contenu. Captain, ca ne change rien... D'ailleurs si je lance une fonction de détection UTF-8 du fichier, PHP ne me le détecte pas en UTF-8. Mais si je l'édite en hexa, ca ressemble quand même bien à de l'utf-8, what else ? edit : l'édition du fichier en hexa m'a permi de voir qu'il commencait par "FF FE", ce qui voudrait dire qu'il est en utf-16... Bon, maintenant il faut que je voie comment gérer l'utf-16... Modifié 28 Mars 2008 par Grasshopper
Kioob Posté 28 Mars 2008 Posté 28 Mars 2008 (modifié) Oki, effectivement s'il s'agit d'UTF-16, ça change la donne. Je suis loin d'être expert en la matière, mais pour le coup je verrais bien un coup de mb_ereg_replace(), non ? PS : normalement dans un fichier XML l'encodage est précisé non ? Modifié 28 Mars 2008 par Kioob
Grasshopper Posté 29 Mars 2008 Auteur Posté 29 Mars 2008 C'est bon, j'ai créé une petite fonction d'encodage en utf-16 qui fera l'affaire. Ensuite je fais un str_replace sur ces chaines réencodées et ca marche ! Youpi la fete
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant