Salut à tous, J'ai une appli qui fonctionne super avec Easyphp 1.6 et je veux l'utiliser avec Wamp5 mais sur une fonctionnalité qui importe un fichier XML qui contient des lignes avec des mots français avec accents éè... ces mots sont tronquées à l'import avec Wamp5 et ça marche nickel avec Easyphp 1.6 ils sont bien intégrés en entier. D'où vient mon pb ? Est-ce que ça vient de Wamp qui en anglais ? y-a-t-il une config ds Wamp5 à modifier pour la France ? Du code php qui était développé pour du PHP4 ? auquelle cas quelle peut-être l'instruction qui doit être converti sous PHP5 ? car j'aimerai éviter de basculer Wamp5 en PHP4 J'ai des lignes du style : $NomSequence=utf8_decode($data); ????? merci pour les pistes.
Cherchez pas je pense avoir trouvé c'est le code de mon appli qui ne fonctionne pas avec PHP5 car avec Wamp5 en installant l'addon on peut passer de PHP5 à PHP4 en un seul click et inversement bien sûr et lorsque je revient en PHP4 ça marche impect alors que ça bug lorsque je reviens en PHP5, maintenant je ne connais pas le remède au niveau du code ????? car mon fichier XML est codé UTF8 donc j'utilise une ligne qui récupère le texte du XML en faisant : $NomSequence=utf8_decode($data); cette instruction est bien compatible PHP5 ???
j'ai beau regarder la doc mais je ne vois rien car mon code fonctionne avec PHP4 donc pourquoi avec PHP5 ça bug, j'utilise bien utf8_decode mais rien n'y fait ???? pour moi il ya quelque chose ds Wamp ou ds PHP5 ???? je répète le même code et le même fichier XML fonctionne avec Wamp PHP4 ?????
//ouvrir le fichier if (!($fp = fopen($fic, "r")) { die("Impossible d'ouvrir le fichier XML" }
while ($data = fread($fp, 4096)) { if (!xml_parse($xml_parser2, $data, feof($fp))) { die(sprintf("Erreur XML: %s ligne %d", xml_error_string(xml_get_error_code($xml_parser2)), xml_get_current_line_number($xml_parser2))); } } //////////// xml_parser_free($xml_parser2); return $ids; }
function characterData($parser, $data) { global $currentTag; global $AttentTitre; global $AttentNom; global $AttentLaunch; global $AttentLocation; global $Sequence; global $NbSequence; global $NomSequence; global $Launch;
$name= $currentTag;
if (($name=="TITLE"&&($AttentTitre)) { $Sequence['titre'][$NbSequence-1]=utf8_decode($data); $AttentTitre=0; }
if (($name=="ADLCP:LOCATION"&&($AttentLocation)) { $Sequence['location'][]=utf8_decode($data); $AttentLocation=0; }
if (($name=="TITLE"&&($AttentNom)) { $NomSequence=utf8_decode($data); $AttentNom=0; }
if (($name=="ADLCPATAFROMLMS"&&($AttentLaunch)) { $Launch.=utf8_decode($data); } }
To maintain compatibility between PHP4 and PHP5 you should always pass a string argument to this function. PHP4 autodetects the format of the input if you leave it out whereas PHP5 will assume the format to be ISO-8859-1 (and choke on the byte order marker of UTF-8 files).
Calling the function as <?php $res = xml_parser_create('') ?> will cause both versions of PHP to autodetect the format.
--------------------------------------------------------------------------------------------------------------------- Maintenant, même si cela fonctionne, je te conseil vivement de passer à simpleXML qui est vraiment SIMPLE et tout aussi puissant que ce que tu faisait en PHP4. Et s'il te manque des fonctionalitées, transforme ton objet simpleXML en objet DOM.. XSLT est lui aussi très bien supporté..
xml_parser_create() crée un analyseur XML et retourne une référence sur cet analyseur pour qu'il puisse être utilisé ultérieurement par d'autres fonctions XML.
Le paramètre optionnel encoding spécifie le jeu de caractères que le XML doit traiter. Les jeux de caractères supportés sont "ISO-8859-1", qui est aussi la valeur par défaut si encoding est omis, "UTF-8" et "US-ASCII".
Bon après plusieurs de recherche sur x phorum n'ayant pas de réponse, je vais mettre ça sur un bug de PHP5 & xml_parser_create car j'ai essayé avec simplexml et la le pb se résoud !!!!!!!