XML - PHP... API Flickr [RESOLU]

XML - PHP... API Flickr [RESOLU] - PHP - Programmation

Marsh Posté le 16-03-2011 à 17:20:17    

Bonjour,
J'essaie désespérément de récupérer mes photos d'un de mes albums sur Flickr via l'API de flickr.
Voici mon code:

Code :
  1. <?PHP
  2.   $dom = new DomDocument;
  3.   $dom->loadHtmlFile("http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&api_key=xxx&user_id=xxx&photoset_id=xxx" );
  4.   $xml = simplexml_import_dom($dom);
  5.   print_r($xml);
  6.   foreach($xml->rsp as $rsp)
  7.   {
  8. foreach($rsp->photoset as $photoset)
  9.    {
  10.  foreach($photoset->photo as $photo)
  11.     {
  12.   $photo_aff_id = $photo['id'];
  13.   $photo_aff_secret = $photo['secret'];
  14.   $photo_aff_server = $photo['server'];
  15.   $photo_aff_farm = $photo['farm'];
  16.   echo "<img src='http://farm".$photo_aff_farm.".static.flickr.com/".$photo_aff_server."/".$photo_aff_id."_".$photo_aff_secret.".jpg'>";
  17.   echo "<br /><br />";
  18.  }
  19. }
  20.   }
  21. ?>


 
Malheureusement, l'erreur suivante s'affiche pour chaque noeud:

Code :
  1. Warning: DOMDocument::loadHTMLFile() [domdocument.loadhtmlfile]: Tag rsp invalid in http://api.flickr.com/services/res [...] set_id=xxx, line: 2 in xxx.php on line 11


 
D'où cela peut-il venir ?
Pourtant, lorsque je passe par firefox pour vérifier l'url qui me renvoie la chaine xml tout à l'air en ordre:
 

Code :
  1. <rsp stat="ok">
  2. <photoset id="xxxx" primary="xxxx" owner="xxx" ownername="xxx" page="1" per_page="500" perpage="500" pages="1" total="8">
  3. <photo id="xxx" secret="xxx" server="xxx0" farm="6" title="Orage" isprimary="1"/>
  4. <photo id="xxx" secret="xxx" server="xxx" farm="6" title="Orage" isprimary="0"/>
  5. </photoset>
  6. </rsp>


 
Quelqu'un sait d'où vient cette erreur ?
Merci beaucoup!!!
A tout plus.


Message édité par g_bu le 17-03-2011 à 08:49:59
Reply

Marsh Posté le 16-03-2011 à 17:20:17   

Reply

Marsh Posté le 16-03-2011 à 19:19:11    

ton document n'est pas un document html, c'est un document xml, charge le avec la fonction load plutôt que loadHTMLFile.


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
Reply

Marsh Posté le 17-03-2011 à 08:49:01    

Oh puré... j'avais testé avec load mais avec une autre version de code dans lequel j'avais d'autres erreurs... j'ai pas pensé à réessayer...  
ça marche maintenant!!!
MERCI beaucoup!
 
Par contre mon foreach ne jouait pas... je l'ai simplifié:

Code :
  1. foreach($xml->photoset->photo as $photo)
  2.   {
  3.  $photo_aff_id = $photo['id'];
  4.  $photo_aff_secret = $photo['secret'];
  5.  $photo_aff_server = $photo['server'];
  6.  $photo_aff_farm = $photo['farm'];
  7.  echo "<img src='http://farm".$photo_aff_farm.".static.flickr.com/".$photo_aff_server."/".$photo_aff_id."_".$photo_aff_secret.".jpg'>";
  8.  echo "<br /><br />";
  9.   }


Pourquoi faire simple quand on peut faire compliqué! On ne se moque pas...!  :pt1cable:  
 
Merci! ++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed