Bonjour,
Sur une installation toute fraîche, Apache2 PHP5 et MySQL5 je n'arrive pas à faire fonctionner les fonctions xml_parse ni simplexml_load_string.
Mon but est de migrer un CMS qui fonctionnait correctement sur un ancien serveur mais qui plante lamentablement sur cette nouvelle machine.
Je trouve beaucoup d'exemples d'utilisation du parser avec des fichiers externes, mais pas grand chose avec une base de données.
Le jeu de caractères pour MySQL est UTF-8 Unicode (utf8).
Je crée une nouvelle base avec interclassement utf8_general_ci
Je crée une table avec un seul champ de type "longtext" et interclassement utf8_general_ci
J'insère un enregistrement, et je tape <TEXTE>Des caractères accentués...</TEXTE>
Ensuite, en dehors des mysql_connect et mysql_select_db, j'ai dans mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
function fonctionTexte($parseur, $texte) {
  echo $texte."<br/>";
}
$parseurXML = xml_parser_create();
xml_set_character_data_handler($parseurXML, "fonctionTexte");
$result = mysql_query ("SELECT contenu FROM xml WHERE 1 LIMIT 1 ");
$ligne = mysql_fetch_array($result);
print_r($ligne);
xml_parse($parseurXML,(utf8_decode($ligne[0])));
  echo "Erreur XML : ".xml_error_string(xml_get_error_code($parseurXML))."\n";
xml_parser_free($parseurXML);
$xml = simplexml_load_string((utf8_decode($ligne[0])));
print_r($xml);
Ce qui me donne comme résultat :
Array
(
[0] => Des caractères accentués...
[contenu] => Des caractères accentués...
)
Des caract?s accentu?..
Erreur XML : No error
Des caract?s accentu?..
SimpleXMLElement Object
(
[0] => Des caract?s accentu?..
)
J'ai essayé diverses combinaisons, mais visiblement pas la bonne.
J'espère que quelqu'un aura un exemple à me montrer...
Merci d'avance !
Mathieu