Le format RSS est une manière d'écrire un
contenu sans sa mise en page. Dans le cadre des flux RSS
de Netpolitique, les fichiers contiennent tout le contenu
des dernières news.
C'est une méthode de syndication de contenu. C'est
à dire qu'un site comme Netpolitique met à
la disposition des autres webmasters son contenu, pour
qu'ils puissent le publier (avec leur charte graphique)
sur leur propre site.
Pour en savoir plus, voir l'article d'introduction à
RSS du Journal
du Net.
Comment publier un fil RSS sur son site ?
Si vous animez un blog ou site sous SPIP, cette syndication
peut se faire automatiquement.
Si vous animez un site simplement en PHP, voici un script
qui permet de parser un fil RSS en PHP pour l'afficher
sur une page de votre site.
<?php
$insideitem = false;
$tag = "";
$title = "";
$description = "";
$link = "";
function startElement($parser, $name, $attrs) {
global $insideitem, $tag, $title, $description, $link;
if ($insideitem) {
$tag = $name;
} elseif ($name == "ITEM") {
$insideitem = true;
}
}
function endElement($parser, $name) {
global $insideitem, $tag, $title, $description, $link;
if ($name == "ITEM") {
//printf("<dt><b><a href='%s' target='_blank'>%s</a></b></dt>",
//trim($link),htmlspecialchars(trim($title)));
//printf("<dd>%s</dd>",htmlspecialchars(trim($description)));
printf("<b><a href='%s' target='_blank'>%s</a></b></br>",
trim($link),htmlspecialchars(trim($title)));
printf("%s</br></br>",htmlspecialchars(trim($description)));
$title = "";
$description = "";
$link = "";
$insideitem = false;
}
}
function characterData($parser, $data) {
global $insideitem, $tag, $title, $description, $link;
if ($insideitem) {
switch ($tag) {
case "TITLE":
$title .= $data;
break;
case "DESCRIPTION":
$description .= $data;
break;
case "LINK":
$link .= $data;
break;
}
}
}
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement",
"endElement");
xml_set_character_data_handler($xml_parser, "characterData");
//L'ADRESSE DU FIL RSS EST A INSERER CI-DESSOUS
$fp = fopen("http://www.netpolitique.net/php/ressources/rss_news.php","r")
or die("Error reading RSS data.");
while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);
?>
|