j'ai une base de donnés dans laquelle sont stocké des news.
Dans ma table j'ai un champs "descnews" dont toutes les textes (environ 500) sont par exemple enregistré de cette façon : été à la plage.
Lorsque je les affiche sur un page php en UTF8 j'ai bien le texte correct qui apparait : été à la plage.
Maintenant je viens de mettre en place un petit code qui génère un fichier xml mais mon soucis c'est que au lieu d'avoir dans mon fichier xml (pour ma balise <Texte>) été à la plage j'ai été à la plage.
J'ai fais plusieurs recherches infructueuses pour essayé de résoudre se problème mais rien n'y fait.
Je vient donc me tourner vers vous pour solicité votre aide et savoir si vous connaissiez la solution à mon problème
voici le code qui génère le fichier xml :
<?php
$db_name = "xxx";
$link = mysql_connect("xxx", "xxx", "xxx") or die("Connexion impossible.");
$table_name = 'basenews';
$db = mysql_select_db($db_name, $link);
$query = "select * from $table_name ORDER BY ref DESC";
$result = mysql_query($query, $link) or die("Impossible d'interroger la base de données");
$num = mysql_num_rows($result);
if ($num != 0) {
$file= fopen("/xml/mesnews.xml", "w");
$_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";
$_xml .="<newsxml xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" schemaVersion=\"1.00\" xmlns=\"http://www.monsite.com/xml/\">\r\n";
$_xml .="<newsdate>\r\n";
$_xml .="\t\t<Ref>XXXX</Ref>\r\n";
while ($row = mysql_fetch_array($result)) {
$_xml .="<lanews>\r\n";
$_xml .="\t\t<Nom>" . $row["nom"] . "</Nom>\r\n";
$texte = ereg_replace("<[^>]*>", "", $row["descnews"]);
$_xml .="\t\t<Texte><![CDATA[" . $texte . "]]></Texte>\r\n";
$_xml .="\t\t<URL_Photo>http://www.monsite.com/images/" . $row["photo1"] . "</URL_Photo>\r\n";
$_xml .="</lanews>";
$_xml .="\t\t\r\n";
}
$_xml .="</newsdate>";
$_xml .="</newsxml>";
fwrite($file, $_xml);
fclose($file);
}
else { echo "erreur"; }
?>