Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

EXPLOITER UN FLUX RSS DANS UNE FONCTION PHP PORTABLE.


Information sur la source

Catégorie :Application Classé sous : rss, fluxrss, xml, flux, parser Niveau : Débutant Date de création : 09/08/2006 Date de mise à jour : 27/08/2006 19:44:56 Vu : 4 669

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

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

  • <? # - - - - - - - - - - - - - #
  • # 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"); ?>
<? # - - - - - - - - - - - - - #
# 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.
 

Historique

13 août 2006 20:51:34 :
Prochainement mise à jour de quelques fonctions et rajout du choix des balises à intégrer.
27 août 2006 19:44:56 :
Optimisation.

Commentaires et avis

signaler à un administrateur
Commentaire de malalam le 10/08/2006 09:26:41 administrateur CS

Hello,

bon...c'est simple en effet. Mais je te suggère d'épurer un peu :
- ne renvoie pas de html! Plutôt un tableau, par exemple. Ou si tu tiens au html, renvoie le, ne le fais pas afficher par ta fonction, c'est plus propre et plus modulable.
- ton html a des ratés ;-) : font est déprécié, ainsi que tous les attrributs de design, au profit des css.
- eregi est lent, préfère-lui les fonctions preg_*
- dans ce cas précis, il sera plus propre et plus correct (et plus rapide) d'utiliser les fonctions xml de php, pour lire ton flux.

Voili voulou. Je ne note pas en attendant de voir des améliorations.

signaler à un administrateur
Commentaire de Anardil le 10/08/2006 10:20:30

Salut,

Moi qui ne m'y connais pas vraiment en xml et manipulation de flux RSS, je trouve ton code d'une simplicité séduisante. Car je suis allé voir les fonctions xml sur php.net et ça ne m'a pas vraiment aidé :( .. Donc un grand merci pour ton code!

signaler à un administrateur
Commentaire de tiny12 le 12/08/2006 08:59:16

Php5 offre pourtant des fonctions de manipulation de fichiers xml plutôt sympa.
ex :
$fichier_xml = simplexml_load_file($xml_path);
echo (string)$fichier_xml->root->item[$num_item]->title;
(faut remplacer root par le nom de la première balise si elle ne s'appelle pas comme ca)
et tu as le titre ;)

signaler à un administrateur
Commentaire de R0_0T le 13/08/2006 21:09:39

Merci de vos commentaires, je vais tenter de répondre à vos questions, tout en vous dévoilant les prochaines mise à jours :

La mise en page se fera dorénavent en CSS, j'utiliserais tout de meme du HTML pour l'affichage des liens.

Dans la fonction flux_rss() on aura maintenant le choix d'intégrer les autres balises du fichier .xml tel <copyright>, <image>, ect ...

Pourquoi je n'utilise pas les fonctions PHP faite spécialement pour l'éxploitation de flux RSS ?
Pour une simple raison de transport, beaucoup de gens utilise encore des softs comme easyphp, ect ... qui ne propose pas encore PHP5, j'aimerais donc pouvoir faire une source plutot portable sur n'importe quelle architecture, et tout ausi rapide que si l'ont utilisés les fonctions spécial XML de PHP. Je pourrais peut etre faire une 2eme version éxploitable qui utilisera ces fonctions.

Voila : ) A bientot pour les prochaines mise à jours.

signaler à un administrateur
Commentaire de tiny12 le 13/08/2006 23:23:37

C'est vrai que PHP 5 reste un peu moins portable que PHP 4, mais en même temps, tous les serveurs sont passés à PHP 5 (même free !) et il faut moins de deux minutes pour mettre PHP 5 sur easyphp ;)
http://developpeur.journaldunet.com/tutoriel/php/040820-php-mettre-a-jour-easyphp.shtml
Mais tu as raison, on peut tout à fait faire sans, c'est juste un peu moins lisible au pire. D'ailleurs c'est plus rapide sans utiliser les fonctions php (sauf peut-être avec des eregi), mais moins lisible et plus dur à mettre à jour (avis personnel), c'est une question de choix.

signaler à un administrateur
Commentaire de wizard512 le 17/08/2006 17:39:21

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

signaler à un administrateur
Commentaire de wizard512 le 17/08/2006 18:35:02

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....?

signaler à un administrateur
Commentaire de R0_0T le 17/08/2006 20:58:36

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.

signaler à un administrateur
Commentaire de PaTaTe le 16/02/2009 14:44:37

Personnellement j'ai essayé cette fonction chez Free, force est de constater que ça ne fonctionne pas. Aucune erreur mais aucun contenu affiché ...

signaler à un administrateur
Commentaire de PaTaTe le 16/02/2009 14:46:49

J'ai omis de signaler que simplexml_load_file est inconnu chez Free.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

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 Parser Flux XML afin de trouver une info [ par neoxdragon ] Salut, Ce que je souhaite faire c'est parser un XML de ce type: &lt;item&gt; &lt;id&gt;1&lt;/id&gt; &lt;name&gt;Nom1&lt;/name&gt; &lt;/item&gt; 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" parser un flux rss contenu et affichage dans un bloc [ par micka75014 ] Bonjour,Comment parser un flux RSS : avec sax simpleXMLJ'ai besoin de recuperer la balise &lt;contenu&gt; je ne sais pas si elle est toujour disponibl Comment gerer un flux Rss [ par nlahkim ] Salut a vous,c'est ma premiere requette!!Voilaà, j'ai pris conscience de la force du flux rss, son integration a un site est assez simple, mai je veux recuperer valeur d'une page [ par gazalii ] Bonjour,j'ai besoin de recuperer un resultat d'une page qui me renvoie un flux xmlje m'explique , j'ai une page que je dois appeler apartir d'une fonc pb avec les accents lors de la génération d'un flux RSS(fichier xml) en utilisant domxml [ par maurimaure ] Bonjour, J'ai essay&#233; de g&#233;n&#233;rer un flux RSS&nbsp; en utilisant domxml, Mais j'ai un gros souci, mon navigateur se bloque sur les accen Timeout flux XML [ par FhX ] Bon, petit problème avec les flux XML récupéré via simpleXML en PHP5. Comment on défini un timeout sur ce machin ? Parce que j'ai beau essayer avec le


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,749 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.