我正在尝试使用api.autocomplete.com api
http://api.autocompleteplus.com/?l=en&c=us&q=f
这将返回以下json(可能)代码..
try {acp_new({ query: "f","items":["facebook", "fandango", "fedex", "fedex tracking", "firefox", "food network", "ford", "forever 21", "fox", "fox news"]});} catch (e){}
我不知道这个代码或api的地狱.. 我无法在php
中打印这些关键字看,我制作了这段代码
<?php
$url="http://api.autocompleteplus.com/?q=abc&l=ar&c=in&callback=acp_new&o=1";
$get=file_get_contents($url);
$get=json_decode($get,true);
foreach($get as $data)
{
$see=$data['items'];
echo "$see";
}
?>
我不知道这段代码有什么问题,或者上面我做错了什么......
有人请帮助我。
我收到错误..我正试图用这段代码做错误。
答案 0 :(得分:1)
我做了你的$ get的print_r你得到的结构是不同的,你为每个循环做的处理是不同的
<?php
$url="http://api.autocompleteplus.com/?q=abc&l=ar&c=in&callback=acp_new&o=1" ;
$get=file_get_contents($url);
$get=json_decode($get,true);
print_r($get);
die();
foreach($get as $data)
{
$see=$data['items'];
echo "$see";
}
?>
这提供了如下
Array
(
[0] => abc
[1] => Array
(
[0] => abc
[1] => abc news
[2] => abc full tv schedule
[3] => abcgames.com
[4] => abc tv news
[5] => abc games
[6] => abc shows
[7] => abc sports
[8] => abc tv
[9] => abc radio
)
)
上面的输出明确表示名为items的数组中没有偏移量
所以它只是一个整数索引数组,但是在foreach循环中你试图访问不存在的$ data ['items']因此你得到一个错误
PHP警告:非法字符串偏移'项目'
所以正确的脚本将是
<?php
$url="http://api.autocompleteplus.com/?q=abc&l=ar&c=in&callback=acp_new&o=1" ;
$get=file_get_contents($url);
$get=json_decode($get,true);
foreach($get[1] as $data)
{
echo "$data";
}
?>
希望这有帮助