我写的代码应该做两件事:1-显示来自Twitter用户的最新帖子2-搜索特定关键字。对于第一部分,它完美地工作但是在“搜索”选项的情况下通过转储此错误消息失败:
PHP注意:未定义的偏移量:
我使用以下格式运行代码:
$ php script.php search keyword number
以下是代码:
$result = file_get_contents("http://search.twitter.com/search.json?q=$argv[2]&rpp=$argv[3]&include_entities=true&result_type=mixed");
$decoded = json_decode($result,true);
for($j=0; $j<$argv[3]; $j++)
{
echo ($decoded[$j]['text']);
}
答案 0 :(得分:3)
我检查了Twitter响应,它与您尝试访问的阵列的格式不匹配。
您无法通过$decoded[$j]['text']
访问数据,因为响应中不存在该数据。
你的意思是:
$decoded[results][$j]['text']
我已经检查了它,看起来效果很好。
摘自响应(print_r格式),你就会知道它为什么会发生。
Array ( [completed_in] => 0.015 [max_id] => 322818055665225728 [max_id_str] => 322818055665225728 [page] => 1 [query] => testsearch [refresh_url] => ?since_id=322818055665225728&q=testsearch&result_type=mixed&include_entities=1 [results] => Array ( [0] => Array ( [created_at] => Fri, 12 Apr 2013 21:06:36 +0000 [entities] => Array
答案 1 :(得分:0)
如果用户输入'10'但查询只返回9个结果,for循环的第10次迭代将返回该通知(因为$ decoding [9]不存在)。
也许尝试这样的事情
$limit = $argv[3];
if (count($decoded) < $limit)
{
$limit = count($decoded);
}
for ($j = 0; $j < $limit; $j++)
{
...
}