begin process at 2012 05 27 16:36:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Xml

 > AFFICHAGE DES LIENS RSS

AFFICHAGE DES LIENS RSS


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Xml Classé sous :rss, xml, enclosure Niveau :Débutant Date de création :20/04/2007 Vu / téléchargé :8 573 / 291

Auteur : charlyx

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

 Description

RSS Comment récupérer le contenu d'un fichier XML qui sert pour les liens RSS  ?
avec une seule fonction en mode récursive .



1 création d'une classe DomDocument   $domnodelist = new DomDocument() ;
2 une méthode de la classe ($domnodelist)  télécharge le fichier XML d'un lien RSS ($rss) (exemple içi d'un lien du monde )
  $domnodelist->loadXML ($rss);
3 Appel de la  fonction récursive  ==> resuite ( $domnodelist->firstChild )
resuite($domnodelist->firstChild  ) ;
   à partir du premier noeud de l'arbre du fichier XML
4 dans la fonction recursive on affiche tout les items ( du fichier XML d'un lien RSS  )
à l'interieur des item on affiche ce qu'on veut le titre la description la date et la photo de l'enclosure

il y a plusieurs exemples de liens RSS



      



Source

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  • <html>
  • <head>
  • <title>Page title</title>
  • </head>
  • <body>
  • <?php
  • // à la une LEMONDE http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • $domnodelist->save ('rsslemonde1.xml'); // sauvegarde en fichier.xml qui marche
  • resuite($domnodelist->firstChild ) ;
  • // http://backend.userland.com/rss
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3210,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • $domnodelist->save ('rsslemonde12.xml'); // sauvegarde en fichier.xml qui marche
  • resuite($domnodelist->firstChild ) ;
  • // http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml
  • // http://www.lemonde.fr/rss/sequence/0,2-3244,1-0,0.xml sciences
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3244,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • resuite($domnodelist->firstChild ) ;
  • // http://www.lemonde.fr/rss/sequence/0,2-651865,1-0,0.xml technologie
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-651865,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • resuite($domnodelist->firstChild ) ;
  • // http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml culture
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • resuite($domnodelist->firstChild ) ;
  • $fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3238,1-0,0.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • resuite($domnodelist->firstChild ) ;
  • // http://radiofrance-podcast.net/podcast/rss_14864.xml
  • $fichier_xml = "http://radiofrance-podcast.net/podcast/rss_14864.xml";
  • //$fichier_xml = "http://backend.userland.com/rss";
  • $rss = file_get_contents($fichier_xml);
  • $domnodelist = new DomDocument() ;
  • $domnodelist->loadXML ($rss);
  • $racine=$domnodelist->documentElement ;
  • resuite($domnodelist->firstChild ) ;
  • function resuite($node) {
  • if ($node != null ){
  • if ($node->nodeName == 'channel' ) {
  • foreach($node->childNodes as $nodules){
  • if ($nodules->nodeName =='title' ){
  • $title = utf8_decode( $nodules->nodeValue );
  • }
  • if ($nodules->nodeName =='link' ){
  • $link = $nodules->nodeValue ;
  • }
  • if ($nodules->nodeName =='description' ){
  • $description= utf8_decode( $nodules->nodeValue );
  • }
  • if ($nodules->nodeName =='image' ){
  • foreach($nodules->childNodes as $noduless){
  • if ($noduless->nodeName =='url' ){
  • $urlimage = $noduless->nodeValue ;
  • }
  • }
  • }
  • //--------- fin nodules image url
  • if ($nodules->nodeName =='pubDate' ){
  • $pubDate= $nodules->nodeValue ;
  • }
  • }
  • // echo '<br>'.$title;
  • echo '<li><a href="'.$link.'">' , $title ,'</a></li>' ;
  • echo '<br>'.$description;
  • echo '<li><a href="'.$urlimage.'">' ,'<img src="'.$urlimage.'" title="'.$pubDate.'" />' ,'</a></li>' ; // affiche image avec url
  • echo ' '.$pubDate ; // affiche la dâte de mise à jour de l'article
  • }
  • if($node->nodeName =='item'){
  • foreach($node->childNodes as $nodules){
  • if ($nodules->nodeName =='title' ){
  • $title = utf8_decode( $nodules->nodeValue );
  • }
  • if ($nodules->nodeName =='link' ){
  • $link = $nodules->nodeValue ;
  • }
  • if ($nodules->nodeName =='description' ){
  • $description = utf8_decode($nodules->nodeValue ) ;
  • }
  • if ($nodules->nodeName =='pubDate' ){
  • $pubDate= $nodules->nodeValue ;
  • }
  • if ($nodules->nodeName =='enclosure' ){
  • foreach($nodules->attributes as $nodules){
  • if($nodules->nodeName == 'url' ){
  • $url =$nodules->nodeValue ;
  • }
  • }
  • echo '<li><a href="'.$link.'">' ,'<img src="'.$url.'" title="'.$pubDate.'"/>' ,'</a></li>' ; // affiche image avec url
  • }
  • }
  • echo '<a href="'.$link.'" title="'.$description.'">' , "'.$title.'" ,'</a>',
  • '<h6 style="font-size:8pt; color:#804000"> '.$pubDate ,'</h6>'; // affiche titre avec url
  • }
  • resuite($node->firstChild );
  • resuite($node->nextSibling );
  • }
  • return -1 ;
  • }
  • ?>
  • </body>
  • </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Page title</title>
</head>
<body>
<?php
	// à la une LEMONDE http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml
	
		$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;
			 $domnodelist->save ('rsslemonde1.xml');  // sauvegarde en fichier.xml qui marche
			 resuite($domnodelist->firstChild  ) ;
// http://backend.userland.com/rss
$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3210,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;
			 $domnodelist->save ('rsslemonde12.xml');  // sauvegarde en fichier.xml qui marche
			 resuite($domnodelist->firstChild  ) ;
// http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml


// http://www.lemonde.fr/rss/sequence/0,2-3244,1-0,0.xml  sciences
$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3244,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;	
			 resuite($domnodelist->firstChild  ) ;

// http://www.lemonde.fr/rss/sequence/0,2-651865,1-0,0.xml technologie
$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-651865,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;
			 resuite($domnodelist->firstChild  ) ;
// http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml culture
$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3246,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;	
			 resuite($domnodelist->firstChild  ) ;
			 
$fichier_xml = "http://www.lemonde.fr/rss/sequence/0,2-3238,1-0,0.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;	
			 resuite($domnodelist->firstChild  ) ;



// http://radiofrance-podcast.net/podcast/rss_14864.xml
$fichier_xml = "http://radiofrance-podcast.net/podcast/rss_14864.xml";
	//$fichier_xml = "http://backend.userland.com/rss";      
			  $rss = file_get_contents($fichier_xml); 
			 $domnodelist = new DomDocument() ;
			 $domnodelist->loadXML ($rss);
			 $racine=$domnodelist->documentElement ;	
			 resuite($domnodelist->firstChild  ) ;


 	function resuite($node) {
					 if ($node != null ){
					
				if ($node->nodeName == 'channel' ) {
				foreach($node->childNodes as $nodules){
				if ($nodules->nodeName =='title' ){
				  $title = utf8_decode( $nodules->nodeValue );
					}
					if ($nodules->nodeName =='link' ){
				  $link =  $nodules->nodeValue ;
				}
					if ($nodules->nodeName =='description' ){
				  $description= utf8_decode( $nodules->nodeValue );
				}
				
					if ($nodules->nodeName =='image' ){
				 
					foreach($nodules->childNodes as $noduless){
				if ($noduless->nodeName =='url' ){
				  $urlimage =  $noduless->nodeValue ;
				}
	
					}
				}
				//--------- fin nodules image url
								if ($nodules->nodeName =='pubDate' ){
				  $pubDate=  $nodules->nodeValue ;
				}
		
				}
			//	 echo '<br>'.$title;
				 echo '<li><a href="'.$link.'">' , $title ,'</a></li>' ; 
				 echo '<br>'.$description;
		echo '<li><a href="'.$urlimage.'">' ,'<img src="'.$urlimage.'"  title="'.$pubDate.'" />' ,'</a></li>' ;  // affiche image avec url    
		echo '  '.$pubDate ; // affiche la dâte de mise à jour de l'article
				}
				if($node->nodeName =='item'){

				foreach($node->childNodes as $nodules){
				if ($nodules->nodeName =='title' ){
				  $title = utf8_decode( $nodules->nodeValue );
				}
				if ($nodules->nodeName =='link' ){
				  $link = $nodules->nodeValue ;
			  }
			if ($nodules->nodeName =='description' ){
				  $description =  utf8_decode($nodules->nodeValue ) ;
			  }
										if ($nodules->nodeName =='pubDate' ){
				  $pubDate=  $nodules->nodeValue ;
				}
		
				 	if ($nodules->nodeName =='enclosure' ){
					foreach($nodules->attributes as $nodules){
				   if($nodules->nodeName == 'url' ){
				   $url =$nodules->nodeValue ;
				   } 
				 }
				  echo '<li><a href="'.$link.'">' ,'<img src="'.$url.'"  title="'.$pubDate.'"/>' ,'</a></li>' ;  // affiche image avec url    
					 	}		
						}		
					
       echo '<a href="'.$link.'"   title="'.$description.'">' , "'.$title.'" ,'</a>',
				'<h6 style="font-size:8pt; color:#804000"> '.$pubDate ,'</h6>';  // affiche titre avec url
		
		
						}	 
					 resuite($node->firstChild );
					 resuite($node->nextSibling  );
					 }
 
  	 			return -1 ;
 }	
 
						
						
?>



</body>
</html>

 Conclusion

fonction resuite ($node)
if ($node != null ){  // test si le neud existe ou s'il est null
//-------------
Affichage du contenu de chaque item trouvé
        //-------------




resuite($node->firstChild );  // appel récursif
resuite($node->nextSibling  );// appel récursif
}

   return -1 ;
}
pour de plus amples explications : christian.baklouti@wanadoo.fr

 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


 Sources de la même categorie

Source avec Zip JEU FRISE CHRONOLOGIQUE EN XML par mldvb
OBTENIR LES TAUX DE CHANGE DU JOUR EN EUROS par oallais
Source avec Zip AFFICHER LES FILM EN SALLE par slhuilli
Source avec Zip Source avec une capture MINI-PROCESSEUR XPROC (PIPELINE XML) par ordiman85
Source avec Zip Source avec une capture XML MAPPING TO CLASS OBJECTS / CHARGEMENT / PARSING / MODIFI... par aKheNathOn

 Sources en rapport avec celle ci

Source avec Zip [PHP5][CLASSE] GÉNÉRATION DE FLUX RSS 2.0 par webdeb
PETIT LECTEUR DE RSS SANS PRÉTENTION ... par LocalStone
Source avec Zip Source avec une capture EDITEUR FLUX RSS 2 VIA UN FORMULAIRE par ben05
Source avec Zip Source avec une capture AGENDA BASÉ SUR FLUX RSS PRÉSENTÉ EN TABLEAU OU EN AGENDA ! par cedriclomb
Source avec Zip [PHP5/DOM] CLASSE DE CREATION DE FLUX RSS VIA UN FICHIER XML par jean84

Commentaires et avis

Commentaire de nebamon le 23/04/2007 07:40:21

J'ai ce message d'erreur quand je lance ma page

Fatal error: Cannot instantiate non-existent class: domdocument in d:\program files\easyphp1-8\www\phpcs_affichage-liens-rss_42369\rsspointe22.php on line 14

Merci

Commentaire de charlyx le 23/04/2007 09:01:10

Il n'y pas d'installation nécessaire pour utiliser les fonctions du module Dom , elles font parties du coeur de PHP5.
la classe DomDocument est dans le module Dom de PHP5.
et le module Dom est intégré à PHP5 il n'y a rien à installer.
j'utilise PHP5 et wamp pour tester les programmes PHP5.

Commentaire de kygdgjkmhkljh le 23/04/2007 17:55:47

Bonjour,
A propos de ce script, en ce qui me concerne, il marche impeccablement bien et m’apporte quelques variantes au peu que je connaissais sur le sujet, rien que pour cela MERCI, mon seul soucis est que je cherche un script permettant d’arriver à un résultat similaire mais … je voudrai que le contenu de la page « rsspointe22.php » s’affiche dans un swf . De façon a ajouter « le » coté joli d’une animation flash. Imaginons par exemple un movie clip doté d’une paire de scroll qui permettrai de faire défiler le contenu du fichier « rsspointe22.php ».

Commentaire de neo2k2 le 30/07/2007 10:57:13

Pour afficher cela dans un fichier swf, simplement dans un movie clip, tu lui fais un tell target, par exemple où tu lui indiques des variables AS correspondant à tes variables php.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

XML RSS [ par djamine ] Bonjour J'aimerais bien savoir comment utiliser les RSS sur mon site j'ai trouver pas mal des sites qui proposes des version XML surtout celle est new Problème avec une classe [ par massacr ] Cela fait&nbsp;3 heures que j'essaye de comprendre o&#249; est l'erreur.J'ai fait une classe :&nbsp; class creer_RSS {&nbsp;var $fichier_xml;<B Besoin d'aide pour generer un Flux RSS [ par RuSSe_91 ] Salut tout le monde :) Je viens demander un coup de main pour g&#233;n&#233;rer un fichier RSS en XML. Mon site tourne sous mambo, e RSS Ajouter dans dase de donnée [ par Nexto ] Bonjour :) Je cr&#233;&#233; une petite page ou je voudrais mettre plein de RSS diff&#233;rent avec diff&#233;rentes categ et je voudrais aussi faire 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 Problème avec générateur de flux rss [ par raks13 ] Bonjour,J'ai téléchargé le fichier php permettant de générer un flux rss à partir de ses news, disponible ici: http://www.phpcs.com/code.aspx?ID=22822 insérer contenu xml dans bdd mysql [ par indutec ] Bonjour à tous, Voilà, j'aimerais encoder le contenu d'un fichier xml, que je ne génère pas, vers une base de données mysql. Pour l'instant, il m'enc Parser du xml pour faire un lecteur RSS [ par shadow1779 ] Bonjour,je suis en train de développer un portail et j'aurai besoin de réaliser ma propre classe pour lire des flux RSS, actuellement j'ai trouvé une 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 0,671 sec (4)

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