[php5][classe] génération de flux rss 2.0

Soyez le premier à donner votre avis sur cette source.

Vue 15 105 fois - Téléchargée 871 fois

Description

Ce package de classes PHP5 permet de générer des flux RSS simples ou complexes.
Il gère tous les tags possibles d'un flux RSS 2.0.

Le package est composé de 5 classes :

abstract RSSFeedTools (outils de validation des informations)
abstract RSSFeedBase (classe permettant de partager les attributs / méthodes communs d'un flux et d'un item)
concrete RSSFeed (classe permettant d'instancier un nouveau flux RSS, dérive de RSSFeedBase)
concrete RSSFeedItem (classe permettant de construire un item de flux, dérive de RSSFeedBase)
concrete RSSFeedException (classe d'exception dérivant d'Exception)

De plus, j'ai rédigé une documentation complète (en anglais) et mis à disposition deux fichiers d'exemples.

Ci-dessous, un exemple de flux basique

Source / Exemple :


<?php

	// Import the RSSFeed class
	require_once('path/to/RSSFeed/RSSFeed.class.php');

	// MySQL Connection
	$connection = mysql_connect('localhost','root','example');
	mysql_select_db('website', $connection);
	
	try
	{
		// Create the new instance of the RSS Feed
		$rssFeed = new RSSFeed('utf-8');
		// Activate the string protection
		$rssFeed->setProtectString(true);
		// Set the feed title
		$rssFeed->setTitle('My blog : the best in the world');
		// Set the feed description
		$rssFeed->setDescription('A little blog, which talks about Web programming');
		// Set the feed link
		$rssFeed->setLink('http://www.mywebsite.com/blog/rss/posts.php');
		// Set the feed publication date
		$rssFeed->setPubDate('2007-08-01');
		// Set the feed last build date
		$rssFeed->setLastBuildDate(date('Y-m-d'));
		// Set the feed webmaster
		$rssFeed->setWebMaster('me@mywebsite.com','John Doe');
		// Set the feed managing editor
		$rssFeed->setManagingEditor('me@mywebsite.com','John Doe');
		// Set the feed image
		$rssFeed->setImage('http://www.mywebsite.com/image/logo.jpg','My Logo','My blog',100,200);
		
		// Adding items
		$request = mysql_query('SELECT post_id, post_title, post_description, post_author_email, post_author_name, post_date FROM post WHERE post_valid=1 LIMIT 10');
		
		while($row = mysql_fetch_object($request))
		{
			// Creating a new feed item
			$rssItem = new RSSFeedItem();
			$rssItem->setTitle($row->post_title);
			$rssItem->setDescription($row->post_description);
			$rssItem->setLink('http://www.mywebsite.com/blog/post.php?id='. $row->post_id);
			$rssItem->setGuid('http://www.mywebsite.com/blog/post.php?id='. $row->post_id, true);
			$rssItem->setComments('http://www.mywebsite.com/blog/post.php?id='. $row->post_id .'#comments');
			$rssItem->setAuthor($row->post_author_email, $row->post_author_name);
			$rssItem->setPubDate($row->post_date);
			
			// Add the item to the feed
			$rssFeed->appendItem($rssItem);
		}
		
		// Save the feed
		$rssFeed->save();
		
		// SQL connection closing
		mysql_close();
		
		// Send headers to the browser
		header('Content-Type: text/xml; charset=utf-8');
		// Display the feed
		$rssFeed->display();
	}
	catch(RSSFeedException $e)
	{
		echo $e->getErrorMessage();	
	}
?>

Conclusion :


Le reste est dans le ZIP ^^

Nécessite bien évidemment un serveur PHP5.

Documentation en ligne à cette adresse : http://www.apprendre-php.com/downloads/RSSFeed/documentation/index.html

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Tinathnath
Messages postés
1
Date d'inscription
vendredi 10 août 2012
Statut
Membre
Dernière intervention
3 octobre 2012

Bonjour,
Tout d'abord félicitations ça déboîte ce truc. ;) Je voulais juste te signaler une erreur dans le fichier RSSFeed.class.php ligne 24. Il y a écrit "private $_feddCloud" au lieu de "private $_feedCloud". Bonne continuation ;)
oomar124
Messages postés
7
Date d'inscription
vendredi 16 avril 2010
Statut
Membre
Dernière intervention
21 avril 2010

bonjour ,
est ce que avec cette classe on peux generer un flux rss pour un site qui ne posséde pas un flux ?

merci
easymomo
Messages postés
5
Date d'inscription
mercredi 5 mai 2004
Statut
Membre
Dernière intervention
12 septembre 2009

Merci webdeb
webdeb
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
3
Waip je vais essayer de mettre ça en place lorsque j'aurais un peu à consacrer à l'application ^^
malalam
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
18
Hello,

moi je suis d'accord avec Coucou : une petite abstraction, des classes étendues...ça reste des feeds quand même. Tu peux en effet passer par une méthode d'usinage comme tu le suggères, en plus. Mais vraiment, créer une classe d'abstraction au-dessus, et l'étendre pour générer des classes capable de créer d'autres feeds reste une bonne idée.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.