Hello,
Je suis en train de récupérer des infos provenant d'une BDD et je les parse dans un xml que j'enregistre (pour une utilisation par flash ensuite, qui était là avant la BDD alors j'adapte).
Problème, lorsque j'affiche dans du html le contenu de ma BDD, tout s'affiche correctement, par contre dès que je mets ça dans mon xml et que je l'enregistres, ça m'affiche tout un tas de caractères bizarres.
J'ai vérifié l'encodage de la BDD, du xml (le fichier lui-même ainsi que l'en-tête) et rien, tout est en UTF-8 et devrait s'afficher correctement.
Quelqu'un a une idée ?
Le code :
Je suis en train de récupérer des infos provenant d'une BDD et je les parse dans un xml que j'enregistre (pour une utilisation par flash ensuite, qui était là avant la BDD alors j'adapte).
Problème, lorsque j'affiche dans du html le contenu de ma BDD, tout s'affiche correctement, par contre dès que je mets ça dans mon xml et que je l'enregistres, ça m'affiche tout un tas de caractères bizarres.
J'ai vérifié l'encodage de la BDD, du xml (le fichier lui-même ainsi que l'en-tête) et rien, tout est en UTF-8 et devrait s'afficher correctement.
Quelqu'un a une idée ?
Le code :
$stmt = $pdo->query('SELECT id_availpro, nom, arrondissement, etoiles, x, y, desc_main_en_0, desc_main_fr_0, resa_ds, link1 FROM hotels ORDER BY arrondissement');
$stmt->execute();
$rows = $stmt->fetchAll();
$content = array();
foreach($rows as $key=>$val) $content[$key] = $val;
$str = '<?xml version="1.0" encoding="UTF-8"?><root></root>';
$xml = new SimpleXMLElement($str);
for($i = 1; $i< 21; $i++)
{
$xml->addChild('quarter');
foreach($content as $hotel)
{
if($hotel['arrondissement'] == $i)
{
$xml->quarter[($i - 1)]->addChild('hotel');
$current = count($xml->quarter[($i - 1)]->hotel);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('id', $hotel['id_availpro']);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('label', $hotel['nom']);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('stars', $hotel['etoiles']);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('x', $hotel['x']);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('y', $hotel['y']);
$descen = substr(stripslashes(trim(strip_tags($hotel['desc_main_en_0']))), 0, 200) . '...';
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('descen', $descen);
$descfr = substr(stripslashes(trim(strip_tags($hotel['desc_main_fr_0']))), 0, 200) . '...';
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('descfr', $descfr);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('photo', 'http://static.wizzyhotels.com/assets/' . $hotel['id_availpro'] . '/p1_thumb1.jpg');
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('photosmall', 'http://static.wizzyhotels.com/assets/' . $hotel['id_availpro'] . '/p1_thumb2.jpg');
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('link', $hotel['link1']);
$xml->quarter[($i - 1)]->hotel[($current - 1)]->addChild('book', $hotel['resa_ds']);
}
}
}
$ress = fopen($_SERVER['DOCUMENT_ROOT'] . '/data/hotels.xml', 'w');
fwrite($ress, $xml->asXML());
fclose($ress);
$pdo = null;