【发布时间】:2012-01-19 03:30:14
【问题描述】:
我有时会出现以下错误 致命错误:不能使用 stdClass 类型的对象作为数组 in.. 使用此功能:
function deliciousCount($domain_name)
{
$data = json_decode(
file_get_contents(
"http://feeds.delicious.com/v2/json/urlinfo/data?url=$domain_name"
)
);
if ($data) {
return $data[0]->total_posts;
} else {
return 0;
}
}
$delic = deliciousCount($domain_name);
但此错误有时仅针对特定域发生 有什么帮助吗?
【问题讨论】:
-
您能告诉我们一个“触发”错误的 url 示例吗?必须是来自delicious.com 的响应是有效的json 但不是
[ ... ]形式的东西。 -
注意:我的假设是,not 触发错误的唯一时间是如果/当请求 file_get_contents 请求不成功.. 或其他在这种情况下,
json_decode将返回 false 或 null 如果没有要解码的内容;因此,他的函数将返回 false 从而避免错误。 -
域是xcursionsindia.in 有时会发生有时不会发生
-
delicious.com的这个功能坏了。对于像google.de 这样的现有域,一次您将获得一个条目 (
[{"url":...}]),而其他时候您将获得一个空对象 ({})。对于不存在的域,例如 example.example[]或{}。 -
事实上,Saxoier 你有权利,那么解决方案是什么?