在stream.get
上,我尝试
echo $feeds["posts"][$i]["attachment"]["href"];
它返回URL,但是,在“type”所在的相同数组范围内(返回string:video等),尝试$feeds["posts"][$i]["attachment"]["type"]
根本不返回任何内容!
这是一个通过PHP var_dump
:http://pastie.org/930475
所以,从测试开始,我认为这受到了Facebook的保护?这有什么意义吗?
此处已满:http://pastie.org/930490,但并非所有附件/媒体/类型都有值。
这也很奇怪,因为我无法通过[attachment][media][href]
或[attachment][media][type]
访问,如果我尝试[attachment][media][0][type]
或href
,则会给我一个字符串偏移错误。
["attachment"]=> array(8) {
["media"]=> array(1) {
[0]=> array(5) {
["href"]=> string(55) "http://www.facebook.com/video/video.php?v=1392999461587"
["alt"]=> string(13) "IN THE STUDIO"
["type"]=> string(5) "video"
我的问题是,这受Facebook保护吗?或者我们可以实际访问此数组位置?
答案 0 :(得分:1)
好吧,一旦数据返回给您,它就不再受Facebook保护。您可以完全访问该结果中的所有内容作为常规数据结构。
从它的外观来看,整个过程中有多个href
属性,所以你要小心你要去哪一个。{ $feeds["posts"][$i]["attachment"]["href"]
是某些项的有效元素,但$feeds["posts"][$i]["attachment"]["media"][0]["href"]
也是有效元素。
但是似乎没有$feeds["posts"][$i]["attachment"]["type"]
元素,所以这就是为什么你没有得到任何特定项目的原因。然而,["attachment"]["media"][0]
内部有一个类型,这可能就是你想要的。
如果在使用数组语法时遇到字符串偏移错误,则可能在某处混淆了元素。可以通过数组语法访问字符串。例如:
$str = "string";
echo $str[1]; //echos 't'
如果您尝试访问大于字符串的索引,则会收到偏移警告。无论如何,从输出的外观来看,$feeds["posts"][$i]["attachment"]["media"][0]["type"]
应该有用。