IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récuperer flus rss en php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Stagiaire
    Inscrit en
    Août 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 148
    Par défaut Récuperer flus rss en php
    Bonjour,

    Je veux recuperer un flux de rss(dans le site de picasa) en php,En fait avec mon code j'arrive pas a recupperer ce flux est ce que vous pouvez m'aider svp voila mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php 
    // inclusion de la classe magpierss
    require_once("magpierss-0.72\rss_fetch.inc"); 
     
    function FeedParser($url_feed, $nb_items_affiches=5) 
    { 
     
    // lecture du fichier distant (flux XML) 
    $rss = fetch_rss($url_feed); 
     
    // si la lecture s'est bien passee, on lit les elements 
    if (is_array($rss->items)) 
    { 
     
    // on ne récupère que les éléments les plus récents 
    $items = array_slice($rss->items, 0, $nb_items_affiches); 
     
    // debut de la liste
    // (vous pouvez indiquer un style CSS pour la formater) 
    $html = "<ul>\n"; // boucle sur tous les elements foreach ($items as $item) 
    { 
    $html .= "<li><a href=\"".$item['link']."\">"; 
    $html .= $item['title']."</a></li>\n";
    } 
    $html .= "</ul>\n"; 
    } 
     
    // retourne le code HTML à inclure dans la page 
    return $html; 
    } 
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php require_once("feedparser.php"); 
    echo FeedParser("https://picasaweb.google.com/data/feed/base/user/107353736179759429408/albumid/5659262403796066625?alt=rss&kind=photo&hl=fr", 10); ?>
    Merci d'avance,

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 325
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 325
    Billets dans le blog
    17
    Par défaut
    As-tu un message d'erreur quelconque ?

  3. #3
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    Le foreach se trouve dans la ligne de commentaire, il n'est donc pas interprété.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    // boucle sur tous les elements foreach ($items as $item)
    Le passer à la ligne suivante devrait resoudre le problême.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function FeedParser($url_feed, $nb_items_affiches=5){
     
    	// lecture du fichier distant (flux XML)
    	$rss = fetch_rss($url_feed);
     
    	// si la lecture s'est bien passee, on lit les elements
    	if (is_array($rss->items)){
     
    		// on ne récupère que les éléments les plus récents
    		$items = array_slice($rss->items, 0, $nb_items_affiches);
     
    		// debut de la liste
    		// (vous pouvez indiquer un style CSS pour la formater)
    		$html = "<ul>\n";
    		// boucle sur tous les elements
    		foreach($items as $item){
    			$html .= "<li><a href=\"".$item['link']."\">";
    			$html .= $item['title']."</a></li>\n";
    		}
    		$html .= "</ul>\n";
    	}
     
    	// retourne le code HTML à inclure dans la page
    	return $html;
    }

  4. #4
    Membre confirmé
    Femme Profil pro
    Stagiaire
    Inscrit en
    Août 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 148
    Par défaut
    Merci pour vos reponse,voila l'erreur qui s'affiche:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to undefined function fetch_rss() in C:\wamp\www\test\feedparser.php on line 5

  5. #5
    Membre confirmé
    Femme Profil pro
    Stagiaire
    Inscrit en
    Août 2009
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Stagiaire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2009
    Messages : 148
    Par défaut
    j'ai utilisé autre code mais r1 s'affiche voila le code de mes pages:

    Picasa.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    <?php
    /**
     * Fonction permettant d'utiliser l'album photo de Picassa
     * @author Ryo Sensei
     * @version 1.0
     * 
     */
    class Picassa {
    	var $client;
    	/**
    	 *
    	 * @param unknown_type $photoId
    	 */
    	function showPhoto($photoId,$album){
    		?>
    			<div style="width:90%;margin-left:auto;margin-right:auto;margin-top:20px;text-align:center;border:1px solid blue;">
    				<img src="<?echo$photoId?>?imgmax=512">
    			</div>
    			<div style="width:90%;margin-left:auto;margin-right:auto;margin-top:2px;text-align:center;border:1px solid red;">
    				<table style="width:100%;"><tr>
    				<?php
    				$list = $this->getPhotos($album);
    				foreach($list as $k=>$photo){
    					if($photo["url"] == $photoId){
    						$key = $k;
    					}
    				}
    				if(($key-1)<0)$key=1;
    				for($i=$key-2;$i<=$key+2;$i++){
    					if(!isset($list[$i]))continue;
    					echo "<td><center><a href=?page=book&album=$album&photo=".$list[$i]["url"].">
    						  			  	<img src=".$list[$i]["thumbnail"].">
    						  			  </a></center></td>";
    				}
     
     
    				?>
    				</tr></table>
    			</div>
    		<?php
    	}
    	/**
    	 * Constructor
    	 *
    	 * @param unknown_type $client
    	 * @return Picassa
    	 */
    	function Picassa($client){
    		$this->client = $client;
    	}
    	/**
    	 * Retourne dans un tableau la liste des albums
    	 *
    	 * @param unknown_type $client
    	 * @return array=>array(
    	 * 							[text] 		=> titre de l'album
    	 * 							[thumbnail] => image de l'album	
    	 * 							[albumId] 	=> identifiant de l'album		
    	 *					    )
    	 */
    	function getListAlbums($admin = false){
    		$client = $this->client;
    		$gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0");
    		try {
    		    $userFeed = $gp->getUserFeed("default");
    		    foreach ($userFeed as $userEntry) {
    		    	if(!$admin && $userEntry->gphotoAccess->text == "private")continue;
    		    	//print_r($userEntry);
    		        $list[] =  array("text"=>$userEntry->title->text,
    		        				 "thumbnail"=>$userEntry->mediaGroup->thumbnail[0]->url,
    		        				 "albumId"=>$userEntry->gphotoName->text);
     
     
    		    }
    		} catch (Exception $e) {
    		    echo "Error: " . $e->getMessage() . "<br />\n"; 
    		}
    		return $list;
    	}
    	/**
    	 * Fonction permettant de récupérer la liste des photos d'un album
    	 *
    	 * @param unknown_type $album titre de l'album (identifiant)
    	 * @param unknown_type $client
    	 * @return array (
    	 * 		   		array(
    	 * 					[url]  		 => url de la photo (version original)  
    	 * 					[titre]		 => titre de la photo (nom)  
    	 * 					[thumbnail]  => miniature de la photo  
    	 * 				)
    	 * 			)
    	 */
    	function getPhotos($album){
     
    		$client = $this->client;
     
    		$album = str_replace("_"," ",$album);
     
    		$gp = new Zend_Gdata_Photos($client, "Google-DevelopersGuide-1.0");
     
    		$query = $gp->newAlbumQuery();
     
    		$query->setUser("default");
    		$query->setAlbumName($album);
     
    		$albumFeed = $gp->getAlbumFeed($query);
     
    		foreach ($albumFeed as $albumEntry) {
    			//print_r($albumEntry);die;
    			//$photo["url"] = $albumEntry->mediaGroup->content[0]->url;
    			$mediaContentArray = $albumEntry->getMediaGroup()->getContent();
      			$photo["url"] = $mediaContentArray[0]->getUrl();
     
    		    $photo["titre"] =  $albumEntry->title->text;
    		    $photo["thumbnail"] = $albumEntry->mediaGroup->thumbnail[0]->url;
    		    $list[] = $photo;
    		}
    		return $list;
    	}
    	function randomPhoto(){
    		$gp = new Zend_Gdata_Photos($this->client, "Google-DevelopersGuide-1.0");
    		$query = $gp->newUserQuery();
     
    		// indicate the user's feed to retrieve
    		$query->setUser("default");
     
    		// set to only return photos
    		// the default kind value for a user feed is to include only albums
    		$query->setKind("photo");
     
    		$query->setMaxResults("1");
     
    		try {
    		    // we're passing null for the username, as we want to send
    		    // additional query parameters generated by the UserQuery class
    		    $userFeed = $gp->getUserFeed(null, $query);
     
    		    // because we specified 'photo' for the kind, only PhotoEntry objects 
    		    // will be contained in the UserFeed
    		    foreach ($userFeed as $photoEntry) {
    		        echo "<img src=\"".$photoEntry->mediaGroup->thumbnail[2]->url."\" width=100%>";
    		    }
    		} catch (Zend_Gdata_App_HttpException $e) {
    		    echo "Error: " . $e->getMessage() . "<br >\n";
    		    if ($e->getResponse() != null) {
    		        echo "Body: <br />\n" . $e->getResponse()->getBody() . 
    		             "<br />\n"; 
    		    }
    		    // In new versions of Zend Framework, you also have the option
    		    // to print out the request that was made.  As the request
    		    // includes Auth credentials, it's not advised to print out
    		    // this data unless doing debugging
    		    // echo "Request: <br />\n" . $e->getRequest() . "<br />\n";
    		} catch (Zend_Gdata_App_Exception $e) {
    		    echo "Error: " . $e->getMessage() . "<br />\n"; 
    		}	
    	}
     
    }
     
     
    ?>
    config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $username = "aa@gmail.com";
    $pass = "aa";
    ?>
    functions.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    function init(){
     
    	require_once 'Zend/Loader.php';
    	Zend_Loader::loadClass('Zend_Gdata_Photos');
    	Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    	Zend_Loader::loadClass('Zend_Gdata_AuthSub');
     
    	include $PATH."config.php";
     
    	$serviceName = Zend_Gdata_Photos::AUTH_SERVICE_NAME;
    	$client = Zend_Gdata_ClientLogin::getHttpClient($username, $pass, $serviceName);
     
    	return $client;	
    }
    ?>
    Merci d'avance

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi utiliser plein de lib, PHp a tous ce qu'il faut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $url = 'https://picasaweb.google.com/data/feed/base/user/107353736179759429408/albumid/5659262403796066625?alt=rss&kind=photo&hl=fr';
    $xml = simplexml_load_file($url);
     
    echo '<ul>';
    foreach($xml->channel->item as $item) {
        echo '<li><a href="', $item->link, '">', $item->title, '</a></li>';
    }
    echo '</ul>';

Discussions similaires

  1. [XML] Génération fichier XML pour RSS via PHP, problème lors de l'écriture
    Par gator dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 04/02/2012, 18h17
  2. Probleme Lecture Fichier RSS avec PHP 4
    Par sirbaldur dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2006, 09h43
  3. [Tableaux] Problème lecture RSS depuis PHP
    Par naivenu dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2006, 22h37
  4. [RegEx] Construction d'un fichier XML/RSS avec PHP
    Par sirbaldur dans le forum Langage
    Réponses: 4
    Dernier message: 09/06/2006, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo