Page 1 sur 1

Probleme caractère dans XML

Posté : 11 mars 2011, 18:40
par titiafab
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"; } 
?>

Re: Probleme caractère dans XML

Posté : 11 mars 2011, 19:22
par titiafab
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

Re: Probleme caractère dans XML

Posté : 11 mars 2011, 21:00
par stealth35
utilise DOMDocument ou XMLWriter pour créer des XML

Re: Probleme caractère dans XML

Posté : 11 mars 2011, 22:01
par titiafab
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 ?

Re: Probleme caractère dans XML

Posté : 12 mars 2011, 03:41
par stealth35
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_*