2013-05-01 2 views
0

Я пытаюсь использовать api.autocomplete.com 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){} 

Я не то, что ад с этим кодом или апи .. Я не могу напечатать эти ключевые слова в 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

Ну, * что * ошибка вы получаете? –

+0

@Pekka 웃 Я получаю эту ошибку Предупреждение: недопустимое смещение строки 'items' в D: \ xampp \ htdocs \ search \ auto.php в строке 10 a Примечание: Неопределенный индекс: элементы в D: \ xampp \ htdocs \ search \ auto.php в строке 10 – Kapil

+0

Любая идея, как ее исправить – Kapil

ответ

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 в php print_r используется для проверки содержимого любого объекта во время отладки, поэтому его просто для отладки проблемы я опубликовал фактический скрипт, который вам нужен используйте –

+0

@ Kapil print_r также поможет вам понять структуру данных, которые вы получаете от API, поэтому на основе этого вы можете обрабатывать данные, полученные вами из API, в цикле For –

+0

Да, я получил его. Спасибо за помощь. Это правильный ответ. – Kapil