2013-05-01 16 views
0

我想使用api.autocomplete.com API自動填充API的PHP轉換錯誤

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

那麼,*你得到什麼*錯誤? – 2013-05-01 17:36:46

+0

@Pekka웃我得到這個錯誤警告:第10行D:\ xampp \ htdocs \ search \ auto.php中的非法字符串偏移'項目' a 注意:未定義索引:D:\ xampp \ htdocs \搜索\ auto.php在線10 – Kapil 2013-05-01 17:38:25

+0

任何想法如何修復它 – Kapil 2013-05-01 17:38:42

回答

1

我做你的$的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 
     ) 

) 

上面的輸出清楚地表明,在數組中沒有偏移量稱爲項目,

所以它只是一個整數索引數組,但在foreach循環中,您嘗試克至訪問$數據[「項目」],它不存在,所以你得到一個錯誤

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

希望這會有所幫助

+0

@Kapil in php print_r用於調試時檢查任何對象的內容,所以它只是爲了調試問題實際我發佈了你需要的實際腳本使用 – 2013-05-01 17:49:04

+0

@Kapil print_r還可以幫助您瞭解從API獲取的數據結構,因此您可以通過在For循環中處理從API獲得的數據 – 2013-05-01 17:50:17

+0

是的,我知道了Man。謝謝您的幫助。這是一個正確的答案。 – Kapil 2013-05-01 17:50:38