Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Exploiter un flux rss dans une fonction php portable.

5/5 (10 avis)

Snippet vu 7 158 fois - Téléchargée 15 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

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.