begin process at 2012 02 04 23:23:52
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Class et Objet ( POO )

 > [PHP5][CLASSE] GÉNÉRATION DE FLUX RSS 2.0

[PHP5][CLASSE] GÉNÉRATION DE FLUX RSS 2.0


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Class et Objet ( POO ) Classé sous :rss, flux, feed, syndication, xml Niveau :Expert Date de création :16/09/2007 Date de mise à jour :25/10/2007 12:25:29 Vu / téléchargé :12 688 / 751

Auteur : webdeb

Ecrire un message privé
Site perso
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 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

  • <?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();
  • }
  • ?>
<?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/doc umentation/index.html

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 septembre 2007 21:57:03 :
Mise à jour du zip -> mauvais exemple fourni.
16 septembre 2007 22:01:32 :
Erreur corrigée dans les exemples
16 septembre 2007 22:10:24 :
Correction d'une erreur dans la documentation
17 septembre 2007 13:51:14 :
Correction d'une erreur dans l'exemple donné
25 octobre 2007 12:25:31 :
Mise à jour du lien vers la documentation qui a changé entre temps.

 Sources du même auteur

GÉNÉRATION RÉCURSIVE D'UNE ARBORESCENCE DE RÉPERTOIRES
Source avec Zip Source avec une capture [POO] PHP5 ATOM GENERATOR V1.0
Source avec Zip WD_RSS_GENERATOR
Source avec Zip Source avec une capture WD_SHOOTBOX_V3
UPLOAD IMAGES SECURISE

 Sources de la même categorie

CLASSE DE GESTION DE "VARIABLES GLOBALES D'ENVIRONNEMENT" par pifou25
Source avec Zip COLLECTION.CLASS.MIN.PHP par thunderhunter
Source avec Zip SIMPLETEMPLATE par thunderhunter
Source avec Zip Source avec une capture VOIR QUI VISITE VOTRE SITE par Dariumis
Source avec Zip CLASS SIMPLE CBASEDONNEE par smag42

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture [POO] PHP5 ATOM GENERATOR V1.0 par webdeb
Source avec Zip [PHP5/DOM] CLASSE DE CREATION DE FLUX RSS VIA UN FICHIER XML par jean84
Source avec Zip WD_RSS_GENERATOR par webdeb
Source avec Zip Source avec une capture [PHP5]GENERATION DE FLUX RSS par hametsu21
Source avec Zip BIBLIOTHÈQUE GÉNÉRATRICE DE FLUX RSS par pouda

Commentaires et avis

Commentaire de coucou747 le 16/09/2007 22:55:05 administrateur CS

ton zip est vide...
dans gestion, il n'y a pas que ecriture...

sinon, c'est domage de ne pas avoir fait des interfaces Feed, et des classes Rss et Atom par exemple...

Commentaire de webdeb le 16/09/2007 23:32:53

Euh je viens de télécharger le zip et il y'a bien tous les fichiers... Etrange !

Oui je n'ai fait que de l'écriture. D'ailleurs je l'ai bien indiqué dans le titre de la source "Génération" et non "gestion".

Oui il faudrait que je fasse un de ces jours un couplage de cette classe et de ma classe de génération de flux Atom. Mais cette dernière n'est constituée que d'une classe. Il faudrait que je prenne le temps de la recoder de la même manière que celle-ci.

Merci pour ton commentaire ;)

PS : si tu veux downloader le zip, tu le trouver également ici : http://www.apprendre-php.com/RSSFeed/RSSFeed.zip

++

Commentaire de coucou747 le 16/09/2007 23:48:51 administrateur CS

l'interet de la classe ici, c'est justement de generer soit un atom soit un rss, avec le meme code, juste en changeant le nom de la calsse

Commentaire de webdeb le 17/09/2007 00:02:46

Oui je comprends bien. Mais le flux Atom dispose de bien plus d'éléments que le format RSS. Il faudrait faire une classe Feed qui prend soit RSS ou ATOM en paramètre de constructeur. En fonction de celui ci, on instancie soit l'une ou l'autre des classes et on retourne l'instance.

Commentaire de malalam le 21/09/2007 10:41:00 administrateur CS

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.

Commentaire de webdeb le 21/09/2007 21:32:26

Waip je vais essayer de mettre ça en place lorsque j'aurais un peu à consacrer à l'application ^^

Commentaire de easymomo le 12/09/2009 13:18:05 10/10

Merci webdeb

Commentaire de oomar124 le 16/04/2010 10:07:44

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

merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Recherche de flux xml ou/et rss de prog tv sportif [ par bobganjx ] Pauvre de moi en stage, exploit&#233; par un employeur sans scrupule qui me paye pas (c'est beaux les &#233;tudes) ;<font color="#800080" flux rss [ par atchoumen ] Bonjour,je suis en train de mettre un flux rss en place sur mon site et je me retrouve face à un problème bizarre. Lorsque je fais une requete sans co widget+rss+php [ par lsamsoumal ] Bonjour tt le monde: j'ai un code php qui génére un fichier xml contenant des flux rss.Maintenant je veut developper un widget qui récupére les flux r widget avec flux rss [ par pandouta08 ] j'ai un code php d'un générateur d'un fichier xml contenant un ensemble de lien et j'ai un widget yahoo que j'ai créé ,je veux que mon widget yahoo af flux rss [ par mahamourta ] bonsoir tout le monde je veux installer un flux rss sur mon site web . J'ai reussi a avoir un code dans mon fichier xml ,mais je n'arrive pas a l'exp GESTION FLUX RSS [ par Larffas69 ] Bonjour à tous, Quelqu'un saurait-il qu'elle expression html il faut pour afficher une image provenant de la balise d&#8217;un flux RSS ? [code=htm insertion des flux RSS dans des pages php [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie.je suis entrain de créer un site web en php, et je souhai Flux RSS [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : comment je peut insérer u Un flux rss avec une image? (magpierss) [ par rnrr ] Bonjour, j'utilise magpierss pour afficher mes flux rss mais la je doit afficher des images dans mes flux rss. Comment faire? Est-ce fesable avec magp mise en page du flux rss avec du css [ par New_World ] bonjour tous le monde, SVP j'ai un petit soucis avec mon flux rss j'essaye de le mettre en forme avec du css mais aparement il reconait pas mon CSS sa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,232 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales