Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2011, 20h44   #1
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

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

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
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 :
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 :
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,
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 21h09   #2
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
As-tu un message d'erreur quelconque ?
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 23h25   #3
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Le foreach se trouve dans la ligne de commentaire, il n'est donc pas interprété.
Code :
// boucle sur tous les elements foreach ($items as $item)
Le passer à la ligne suivante devrait resoudre le problême.
Code :
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;
}
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 23h53   #4
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

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

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Merci pour vos reponse,voila l'erreur qui s'affiche:
Code :
Fatal error: Call to undefined function fetch_rss() in C:\wamp\www\test\feedparser.php on line 5
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 17h37   #5
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

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

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
j'ai utilisé autre code mais r1 s'affiche voila le code de mes pages:

Picasa.php
Code :
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 :
1
2
3
4
<?php
$username = "aa@gmail.com";
$pass = "aa";
?>
functions.php
Code :
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
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2011, 18h24   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
pourquoi utiliser plein de lib, PHp a tous ce qu'il faut

Code :
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>';
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 20h31   #7
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

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

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Merci bc ca marche mais il m'affiche que des liens mais pas les photos moi je veux récupérer le diaporama des photos
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/10/2011, 20h35   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Miss kouka Voir le message
Merci bc ca marche mais il m'affiche que des liens mais pas les photos moi je veux récupérer le diaporama des photos
a toi de faire ce que tu veux avec les données, c’était juste un exemple
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/10/2011, 13h28   #9
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

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

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Merci,moi je suis debutante en php et je ne sais pas comment je remplace les liens avec e diaporama des images est tu peut m'aider plus stp
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 13h33   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Citation:
Envoyé par Miss kouka Voir le message
Merci,moi je suis debutante en php et je ne sais pas comment je remplace les liens avec e diaporama des images est tu peut m'aider plus stp
c'est pas du PHP mais juste de la mise en page HTML, si tu débutes je te conseil plutôt de voir quelques tutos que de compter uniquement sur des réponses de forum
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h52.


 
 
 
 
Partenaires

Hébergement Web