クライアントのシステムは、flickr.photos.search API 呼び出しを使用して、Flickr アカウントから非公開の写真にアクセスする必要があります。私はそれを設定し、その呼び出し用に生成された URL を取得しました。ブラウザーでその URL にアクセスすると、本来のように XML が出力されます。
(APIリファレンス: http://www.flickr.com/services/api/flickr.photos.search.html )
ただし、PHP では、その XML にアクセスし、simplexml PHP 拡張機能を使用して表示したいと考えています。XML は .xml ファイルではなく動的 URL にあるため、XML にアクセスする方法がわかりません。
XML ファイル (ブラウザーから) は次のようになります。
<rsp stat="ok">
<photos page="1" pages="1" perpage="100" total="4">
<photo id="4332852622" owner="36520372@N05" secret="xxxxxxxx" server="2760" farm="3" title="building" ispublic="0" isfriend="0" isfamily="0"/>
<photo id="4332113745" owner="36520372@N05" secret="xxxxxxx" server="2803" farm="3" title="digging" ispublic="0" isfriend="0" isfamily="0"/>
<photo id="4332852444" owner="36520372@N05" secret="xxxxxxx" server="4025" farm="5" title="house" ispublic="0" isfriend="0" isfamily="0"/>
<photo id="4332113699" owner="36520372@N05" secret="xxxxxxx" server="2802" farm="3" title="PaulLuomaHab" ispublic="0" isfriend="0" isfamily="0"/>
</photos>
</rsp>
そしてPHPで私はこれを試しています:
$rsp = simplexml_load_file($flickrURL);
foreach($rsp->photos->photo as $photo) {
echo $photo->title;
}
何も返しません。ここで何か不足していますか?
注:echo "Ding!";
上記のループ内に追加したforeach
ところ、Ding!Ding!Ding!Ding! がエコーされます。これは、4 枚の写真があることを認識し、適切な回数だけループしていることを意味します。
どうやら、何らかの理由で $photo->title に満足していないようですか?
また
使用すると、次のようprint_r($photo)
になります。
SimpleXMLElement Object ( [@attributes] => Array ( [id] => 4332852622 [owner] => 36520372@N05 [secret] => 88fff62f43 [server] => 2760 [farm] => 3 [title] => building [ispublic] => 0 [isfriend] => 0 [isfamily] => 0 ) )