这个php json脚本有什么问题?

时间:2012-10-01 15:42:13

标签: php json api twitter scripting

  

可能重复:
  How to get useful error messages in PHP?

我无法让这个php json脚本工作。我正在尝试使用他们的api从twitter获取屏幕名称。

这就是我的所作所为。

$send_request = file_get_contents('https://api.twitter.com/1/users/lookup.json?screen_name=frankmeacey');

$request_contents = json_decode($send_request);

echo $request_contents->screen_name;

为什么每次都返回一个空白值?我试过在这里和那里改变一切,但它只是不起作用......

5 个答案:

答案 0 :(得分:1)

因为你得到的数据结构是一个对象数组,而不是一个对象。

echo $request_contents[0]->screen_name;

答案 1 :(得分:0)

该数据看起来是数组中的对象。尝试

echo $request_contents[0]->screen_name;

最好首先检查它是一个数组并从中获取第一个用户:

if (is_array($request_contents)) {
    $user_info = $request_contents[0];
}

if (isset($user_info)) {
    echo $user_info->screen_name;
}

答案 2 :(得分:0)

这是

$request_contents[0]->screen_name

因为$ request_contents是一个对象数组,而不是对象本身。

做一个

var_dump($request_contents);

查看你的json的结构。

答案 3 :(得分:0)

尝试使用

print_r($request_contents); 

OR

var_dump($request_contents); 

用于检查数组。

答案 4 :(得分:0)

您的页面不应为空白..您应该收到类似Notice: Trying to get property of non-object in的错误,因为您拨打的$request_contents->screen_name无效。

尝试告诉PHP使用

输出所有错误
error_reporting(E_ALL);

我也更喜欢CURL

$ch = curl_init("https://api.twitter.com/1/users/lookup.json?screen_name=frankmeacey");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

$request_contents = json_decode($result);
var_dump($request_contents[0]->screen_name);

输出

 string 'frankmeacey' (length=11)