Récupération du contenu pour un flux RSS

Résolu/Fermé
dcanl Messages postés 2999 Date d'inscription mercredi 7 septembre 2005 Statut Contributeur Dernière intervention 3 juin 2013 - 7 oct. 2007 à 10:50
dcanl Messages postés 2999 Date d'inscription mercredi 7 septembre 2005 Statut Contributeur Dernière intervention 3 juin 2013 - 20 oct. 2007 à 11:11
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 vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
7 oct. 2007 à 12:25
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 2999 Date d'inscription mercredi 7 septembre 2005 Statut Contributeur Dernière intervention 3 juin 2013 470
8 oct. 2007 à 18:51
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 vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019 259
13 oct. 2007 à 10:51
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 2999 Date d'inscription mercredi 7 septembre 2005 Statut Contributeur Dernière intervention 3 juin 2013 470 > vignemail1 Messages postés 1246 Date d'inscription vendredi 8 octobre 2004 Statut Contributeur Dernière intervention 13 septembre 2019
20 oct. 2007 à 11:11
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