Probleme caractère dans XML

Petit nouveau ! | 3 Messages

11 mars 2011, 18:40

Bonjour,
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 &eacute;t&eacute; &agrave; 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"; } 
?>

Petit nouveau ! | 3 Messages

11 mars 2011, 19:22

J'ai trouvé un pseudo solution mais il existe certainement un meilleur moyen de le faire.
j'ai utilisé ereg_replace afin d'avoir le bon affichage.
Après si quelqu'un connait une fonction ou autre je prend quand même.
Merci

ViPHP
ViPHP | 5462 Messages

11 mars 2011, 21:00

utilise DOMDocument ou XMLWriter pour créer des XML

Petit nouveau ! | 3 Messages

11 mars 2011, 22:01

Bonjour stealth35,
merci pour cette recommandation mais je ne connais pas du tout DOMDocument ou XMLWriter pour créer des XML.
est ce que le fait d'utiliser ceci réglerait le problème que j'avais au départ ?
Est-ce plus simple à utiliser que de taper le petit code que je vous ai cité ci-dessus ?

ViPHP
ViPHP | 5462 Messages

12 mars 2011, 03:41

on va dire que les outils sont fait pour donc autant les utiliser.
sinon ereg_* est deprecié depuis PHP 5.3 maintenant c'est uniquement preg_*