-1

可能重复:
如何在 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;

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

4

5 回答 5

1

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

echo $request_contents[0]->screen_name;
于 2012-10-01T15:45:23.360 回答
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;
}
于 2012-10-01T15:45:59.083 回答
0

它是

$request_contents[0]->screen_name

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

做一个

var_dump($request_contents);

查看 json 的结构。

于 2012-10-01T15:47:28.620 回答
0

尝试使用

print_r($request_contents); 

或者

var_dump($request_contents); 

用于检查数组。

于 2012-10-01T15:48:35.073 回答
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)
于 2012-10-01T15:50:29.000 回答