il semblerait que le caractére & cause quelques problèmes...
Connaitriez-vous des remedes pour parer a ce petit problème ?
@+ et merci d'avance
Code : Tout sélectionner
<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
<channel>
<title/>
<link>http://www.radioabf.net</link>
<description>RSS feed of radioABF's news</description>
<language>fr, en</language>
<copyright>(c) 2006 RadioABF Team</copyright>
<pubdate/>
<item><title>test [2]</title><link>http://dev.alexgoss.info/index.php?module=news&action=view&id=37</link><pubDate>Mon, 15 Jan 2007 19:22:07 +0100</pubDate><description>Ceci aussi doit apparaitre dans le flux rss, en tête de page, si je n'ai pas rajouté d'autre news après !...</description></item><item><title>Test</title><link>http://dev.alexgoss.info/index.php?module=news&action=view&id=36</link><pubDate>Mon, 15 Jan 2007 19:21:08 +0100</pubDate><description>Normalement, ceci doit apparaitre dans le flux rss.<img src=\"includes/tiny_mce/plugins/emotions/images/icon_blase.gif\" />...</description></item></channel>
<pubdate>Mon, 15 Jan 2007 21:34:18 +0100</pubdate><title>RadioABF :: Flux RSS des news</title></rss>
<?php
private function make_rss($cid='') {
global $db;
$rss_base = <<<XML
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title></title>
<link>http://www.radioabf.net</link>
<description>RSS feed of radioABF's news</description>
<language>fr, en</language>
<copyright>(c) 2006 RadioABF Team</copyright>
<pubdate></pubdate>
</channel>
</rss>
XML;
$rss_item = <<<XML
<item>
<title></title>
<link></link>
<pubDate></pubDate>
<description></description>
</item>
XML;
header('Content-type: text/xml');
$simplexml = new SimpleXMLElement($rss_base);
$simplexml->pubdate = date("D, d M Y H:i:s +0100");
$simplexml->title = $_SESSION['config']['sitename'].' :: Flux RSS des news';
$q_nrss = $db->load_query('news_select_rss', array('news.start' => '0', 'news.limit' => '20', 'site.id' => $_SESSION['s_data']['site_id']));
if($db->count_rows($q_nrss) > 0) {
while($data = $db->fetch($q_nrss)) {
extract($data);
$node = $simplexml->channel;
$news_item = $node->addChild('item');
$news_item->addChild('title');
$news_item->addChild('link');
$news_item->addChild('pubDate');
$news_item->addChild('description');
$news_item->title = stripslashes($news_title);
$news_item->link = 'http://'.$_SERVER['HTTP_HOST'].'/'.rewrite_link('news', array('action' => 'view', 'id' => $news_id));
$news_item->pubDate = date("D, d M Y H:i:s +0100", $news_date);
$news_item->description = htmlentities(substr($news_content, 0, 300)).'...';
unset($news_item, $node, $data);
}
}
else {
$node = $simplexml->channel;
$news_item = $node->addChild('item');
$news_item->addChild('title');
$news_item->addChild('pubDate');
$news_item->addChild('description');
$news_item->title = 'Sorry...';
$news_item->pubDate = date("D, d M Y H:i:s +0100");
$news_item->description = 'There is no news on RadioABF for the moment, please retry later';
}
echo $simplexml->asXML();
}
?>
Donc je ne saisis pas du tout la position de mes balises pubdate et title...<?php
$news_item->description = '<![CDATA['.substr($news_content, 0, 300).'...]]>';
?>
Et il m'enregistre la chaine comme si j'avais fait un htmlentities sur le contenu de la variable, donc le <![CDATA[ est remplacé par <![CDATA[<?php
private function make_rss($cid='') {
global $db;
$rss = '<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>'.$_SESSION['config']['sitename'].' :: Flux RSS des news</title>
<link>http://www.radioabf.net</link>
<description>RSS feed of radioABF\'s news</description>
<language>fr, en</language>
<copyright>(c) 2006 RadioABF Team</copyright>
<pubdate>'.date("D, d M Y H:i:s +0100").'</pubdate>
';
header('Content-type: application/xml');
$simplexml->title = $_SESSION['config']['sitename'].' :: Flux RSS des news';
$q_nrss = $db->load_query('news_select_rss', array('news.start' => '0', 'news.limit' => '20', 'site.id' => $_SESSION['s_data']['site_id']));
if($db->count_rows($q_nrss) > 0) {
while($data = $db->fetch($q_nrss)) {
extract($data);
$title = stripslashes($news_title);
$link = 'http://'.$_SERVER['HTTP_HOST'].'/'.rewrite_link('news', array('action' => 'view', 'id' => $news_id));
$pubdate = date("D, d M Y H:i:s +0100", $news_date);
$desc = substr($news_content, 0, 300).'...';
$rss .= <<<XML
<item>
<title>$title</title>
<link>$link</link>
<pubDate>$pubdate</pubDate>
<description><![CDATA[$desc]]></description>
</item>
XML;
}
}
$rss .= <<<XML
</channel>
</rss>
XML;
echo $rss;
}
?>
Certes c'est pas ce qu'il y a de plus propre mais au moins, ca fonctionne selon mes exigences...