Récupération du contenu pour un flux RSS

Résolu
dcanl Messages postés 3004 Date d'inscription   Statut Contributeur Dernière intervention   -  
dcanl Messages postés 3004 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je cite l'encyclopédie CCM
Pour proposer un flux RSS sur son site et mettre ainsi une partie de son contenu à disposition des autres webmasters, il suffit de créer un script chargé de récupérer les informations à inclure dans le flux RSS et de les écrire dans un fichier XML au format RSS.

Est-ce que quelqu'un pourrait me dire comment on fait un tel script ? Ou me donner un exemple ?

Parce que je n'ai pas vraiment envie de mettre à jour à la main un fichier à chaque ajout de news sur mon site ! :) Les flux RSS de CCM doivent bien être générés automatiquement, j'aimerais savoir comment faire.

Merci !

2 réponses

vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention   259
 
tu peux tenter un truc du genre :
<?php
header('Content-Type: application/rss+xml');
	
	printf("%s\n", '<?xml version="1.0" encoding="iso-8859-1" ?>');
	printf("%s\n", '<rss version="2.0">');

	printf("<channel>\n");
	printf("<title>%s</title>\n", "Titre");
	printf("<link>%s</link>\n", "http://adresse de ton site");
	printf("<description>%s</description>\n", "description du site");
	printf("\t<pubDate>%s</pubDate>\n\n", htmlspecialchars(date(DATE_RFC822)));
	
	include ('auth.php');
	
	if (isset($_REQUEST['nb'])){
		$nb = $_REQUEST['nb'];
	}else{
		$nb = 5;
	}
	
	$sql = "SELECT * FROM news";
	$resultat = mysql_query($sql, $id_link);
	$nb = min(mysql_num_rows($resultat), $nb);
	
	mysql_free_result($resultat);

	$sql = "SELECT * FROM news ORDER BY news_id DESC LIMIT ".$nb;
	$result = mysql_query($sql, $id_link);
	
	while ($rang = @mysql_fetch_array($result, MYSQL_BOTH)) {
		$titre = htmlspecialchars(strip_tags(html_entity_decode($rang['news_titre'])),ENT_QUOTES);
		$desc = date("Y-m-d : ",$rang['news_date']).str_replace('/[\r\n]/g', "", htmlspecialchars(html_entity_decode($rang['news_message']), ENT_QUOTES));
		
		printf("<item>\n");
		printf("\t<title>%s</title>\n", $titre);
		printf("\t<link>http://adresse de ton site</link>\n");
		printf("\t<description>%s</description>\n", $desc);
		printf("\t<pubDate>%s</pubDate>\n", date(DATE_RFC822,$rang['news_date']));
		printf("</item>\n\n");
		
	}
	mysql_free_result($result);
	printf("%s\n%s\n", "</channel>","</rss>");
?>
1
dcanl Messages postés 3004 Date d'inscription   Statut Contributeur Dernière intervention   470
 
Salut.

Mais ça, ça me donne un fichier .php si je ne me trompe... ? Et il faut un .xml pour des flux rss... ?

@+
0
vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention   259
 
pas forcement un .xml car il suffit de dire que le contenu est du rss avec header('Content-Type: application/rss+xml');
0
dcanl Messages postés 3004 Date d'inscription   Statut Contributeur Dernière intervention   470 > vignemail1 Messages postés 1246 Date d'inscription   Statut Contributeur Dernière intervention  
 
Mais dans ce cas, avec Firefox ça marche nickel, mais IE6 veut télécharger le fichier et ne l'affiche pas...

Mais merci en tout cas, j'arrive à récupérer ce que je veux dans ma base de données ! :-)

@+
0