0

我正在尝试使用 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"; 
}
?>

我不知道这段代码有什么问题,或者我在上面做错了什么......

有人请帮助我。

我出错了。我试图用这段代码做什么我得到了错误。

4

1 回答 1

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";
  }
  ?>

希望这可以帮助

于 2013-05-01T17:43:39.383 回答