2012-02-28 79 views
6

我试图通过实体参数获取并显示张贴在推文中的图像。我的url中有include_entities,可以看到返回的json中的实体。从twitter api实体参数获取图像url实体参数php

在我的foreach循环,我做了以下内容:

foreach($results as $result){ 
    $media_url = $result->entities->media->media_url; 
    $media_size_h = $result->entities->media->sizes->small->h; 
    $media_size_w = $result->entities->media->sizes->small->w; 
... 
} 

然而,这并不返回任何东西。

对于我的输出,我有...

if(strlen($media_url) > 0) 
{ 
    //format table for tweets with images 

} else { 
    //format table for regular tweets 
} 

这是JSON ...

array(20) { 
[0]=> 
object(stdClass)#5 (21) { 
... 
["entities"]=> 
object(stdClass)#7 (4) { 
    ["media"]=> 
    array(1) { 
    [0]=> 
    object(stdClass)#8 (10) { 
     ["type"]=> 
     string(5) "photo" 
     ["media_url"]=> 
     string(38) "http://photourl.jpg" 
... 
["sizes"]=> 
     object(stdClass)#9 (4) { 
     ["thumb"]=> 
     object(stdClass)#10 (3) { 
      ["resize"]=> 
      string(4) "crop" 
      ["h"]=> 
      int(150) 
      ["w"]=> 
      int(150) 
     } 
... 
} 

任何想法,为什么这是不工作?任何帮助将非常感激!

回答

11

$result->entities->media->这是出现在结构数组...尝试使用

$media_url = $result->entities->media[0]->media_url; 
+0

是的!你是最棒的!谢谢! – Michael 2012-02-28 13:31:08

+0

嗨,我没有得到media_url字段值,因为我写在这里 - http://stackoverflow.com/questions/24471417/getting-user-tweets-by-twitter-api-call-not-returning-media-url – 2014-06-29 17:55:11

+0

API不久前改变了。现在,如果你想要的媒体网址,你将需要做的: '$ result-> media [0] - > media_url;' – olegario 2017-12-01 11:07:00

-1

我很可能是错的,但我相信你需要在if语句中的数字之前和之后。

0
$results = json_decode($results); 

我觉得这是很容易看到如何选择项目,当你解码JSON对象:)

请尝试下次:)

+0

下次尝试介绍你的拼写和代码格式:-) – kleopatra 2012-11-15 12:44:59

+0

Lol,nub。一切都是正确的。下次记住你的阅读。 – 2012-11-15 13:21:50

+0

它现在是正确的,_after_我的编辑..检查差异,队友 – kleopatra 2012-11-15 13:36:16