Exploiter un flux rss dans une fonction php portable.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 749 fois - Téléchargée 27 fois

Contenu du snippet

Ce script PHP permet d'éxploiter un flux RSS (autrement dit c'est un parser RSS), il lit un fichier au format .xml afin d'afficher par exemple, les news qu'il contient.
J'ai codé une fonction plutôt simple d'utilisation, elle s'utilise comme ceci:
flux_rss("chemin vers le fichier .xml", "nombre de champs à afficher");
Ce script a aussi une particularité, il n'utilise aucune fonction xml spécifique à PHP, pourquoi ?
Car ces fonctions sont apparu à partir de PHP5, je me suis basé sur le critére de la portabilité, son utilisation est donc possible à partir PHP 4.3.0.

La source est plutôt simple, donc des commentaires inéxistants, pour l'utiliser insérer le programme dans une page .php et incluer le à votre site web grêce au fonction require_once() ou include().

Ce programme est distribué sous les droits GNU/GPL, vous pouvez l'utiliser à condition de réspecter ces réstrictions.

Source / Exemple :


<? # - - - - - - - - - - - - - #
# Licence GNU/GPL
# Copyright (C) open-source software
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# - - - - - - - - - - - - - # ?>

<?php
  function flux_rss($_path,$limite)
  {
    $xml_file="";
	$fp=fopen($_path, 'r');
	if($fp) {
		while(!feof($fp)){
			$xml_file.=fgets($fp);
				 } 
 	fclose($fp);  } else { echo"Impossible d'ouvrir le fichier XML !<BR>Veuillez vérifier le chemin vers le flux."; } 
	

    if(eregi("<item>(.*)</item>",$xml_file,$xml_items)){

        $items = explode("<item>", $xml_items[0]);
        $nbr = count($items);     

        for ($i=1;$i<=$limite;$i++) {

            eregi("<title>(.*)</title>",$items[$i], $title);
            eregi("<link>(.*)</link>",$items[$i], $link);
            echo "- <a href=\"".$link[1]."\">".$title[1]."</a><br/>";
            } 
	    }  
   }

?>

<? flux_rss("http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml", "6"); ?>

Conclusion :


Le dévelloppement est toujours en cours d'une version plus aboutie, apportant plus d'intéraction.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2093
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
23 août 2020
2
J'ai omis de signaler que simplexml_load_file est inconnu chez Free.
Messages postés
2093
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
23 août 2020
2
Personnellement j'ai essayé cette fonction chez Free, force est de constater que ça ne fonctionne pas. Aucune erreur mais aucun contenu affiché ...
Messages postés
4
Date d'inscription
lundi 5 juin 2006
Statut
Membre
Dernière intervention
2 février 2007

Hmm une trés mauvaise nouvelle donc :x merci Wizard de m'avoir prévenu.
Je vais donc devoirs passer aux fonction php5, je tacherais quand meme d'essaier de m'en passer un maximum, dans ce cas pour la portabilité. Ou alors passer totalement à php5, pour l'éfficacité, il faut choisir :/

PS: Wizard512 je me suis inspiré de la source publié au départ sur clubic, je l'ai corrigé (il y'avait quelques fautes) et optimiser en quelques sortes, ensuite je leurs ai envoié, ils y ont prit ce qu'il voulait et remis à jour leurs sources.
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013

Je ne t'accuse pas d'avoir faire un copier, coller mais je viens de trouver quasiment lê bout
de code sur cette page : http://www.clubic.com/divers/tutorial-xml.php

Copier/Coller ou Création, telle est la question....?
Messages postés
459
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
11 mai 2013

La fonction file_get_content() est blocker cher la plupars des hébergeure ^^'
SOrry pour la mauvaise nouvelle....
Afficher les 10 commentaires

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.