【问题标题】:PHP Flickr API - Retrieve Title from flickr.photosets.getInfo ResponsePHP Flickr API - 从 flickr.photosets.getInfo 响应中检索标题
【发布时间】:2012-08-23 11:32:10
【问题描述】:

我从 Flickr 得到了正确的回复:

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <photoset id="72157630469695108" owner="15823425@N00" primary="5110549866" secret="fd716fb5ee" server="1136" farm="2" photos="101" count_views="67" count_comments="0" count_photos="101" count_videos="0" can_comment="0" date_create="1341701808" date_update="1345054078">
    <title>Montana</title>
    <description />
  </photoset>
</rsp>

由于某种原因我无法获得标题,我尝试了以下方法:

$album_info = simplexml_load_file($album_info_xml); // this is what the response is stored in

echo $album_info['photoset']['title'];

foreach($album_info->photoset as $ps) {
    echo $ps['title'];
}

还有一些其他疯狂的事情,我知道这很愚蠢,但不知道我错过了什么。

回复可见:http://www.flickr.com/services/api/explore/flickr.photosets.getInfo

只需使用72157630469695108 作为设置ID 或使用此网址:http://api.flickr.com/services/rest/?method=flickr.photosets.getInfo&api_key=7ccedd2c89ca10303394b8085541d9de&photoset_id=72157630469695108

【问题讨论】:

  • 只是为了确保 $album_info_xml 包含一个文件名,而不是实际的 xml 字符串?
  • 这是 flickr api 调用的 url,例如$album_info_xml = 'http://api.flickr.com/services/rest/?method=flickr.photosets.getInfo&amp;api_key='.$api.'&amp;photoset_id='.$set_id;
  • 好的,你检查过print_r($album_info);的回复了吗?
  • 是的-问题在上面,响应本身很好,只是我没有正确遍历数组来获取标题字段的值
  • 问题中的响应是作为字符串的实际 xml 响应,而不是 SimpleXmlElement 对象结构,这就是我问的原因。 print_r 应该显示生成的 XML 文档的样子。

标签: php arrays flickr


【解决方案1】:

您应该直接使用SimpleXMLElement,然后使用xpath 来查找您的节点。

$album_info = new SimpleXMLElement('<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="ok">
  <photoset id="72157630469695108" owner="15823425@N00" primary="5110549866" secret="fd716fb5ee" server="1136" farm="2" photos="101" count_views="67" count_comments="0" count_photos="101" count_videos="0" can_comment="1" date_create="1341701808" date_update="1345054078">
    <title>Montana</title>
    <description />
  </photoset>
</rsp>'); // this is what the response is stored in

$result = $album_info->xpath('//title');

foreach ($result as $title)
{
  echo $title . "\n";
}

Working example.

【讨论】:

    【解决方案2】:

    对于任何处于相同位置的人来说,这都是诀窍

    $albumName = $album_info->photoset->title;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 2017-05-09
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      相关资源
      最近更新 更多