Разобрать Google Images API Json PHP - PullRequest
2 голосов
/ 17 апреля 2011

Эй, я пытаюсь использовать API изображений Google с PHP, и я действительно не знаю, что делать.

Это в основном то, что я сейчас имею:

$jsonurl = "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=test";
$json = file_get_contents($jsonurl,0,null,null);
$json_output = json_decode($json);

Куда бы я пошел оттуда, чтобы получить первый URL-адрес изображения?

Ответы [ 3 ]

10 голосов
/ 17 апреля 2011

С небольшим изменением последней строки примера кода, следующий код выведет URL первого изображения в наборе результатов.

<?php
$jsrc = "https://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=test";
$json = file_get_contents($jsrc);
$jset = json_decode($json, true);
echo $jset["responseData"]["results"][0]["url"];
?>
2 голосов
/ 20 июня 2011

Я должен сказать, что это 10 оттенков удивительного. . Но я пришел с плохими новостями (не стреляйте в курьера)

Важное замечание: API поиска картинок Google официально объявлен устаревшим с 26 мая 2011 г. Он будет продолжать работать в соответствии с нашей политикой устаревания, но количество запросов, которые вы можете делать в день, может быть ограничено.

То есть, как они же, Хром.
Мне кажется, что Google, возможно, нанял слишком многих уволенных из IBM типов ... поскольку они, похоже, убивают все свои "крутые" API.

Они запускают службы случайным образом, обещая то и другое и другое ... но затем какой-то менеджер среднего звена закричал на после того, как понял (та-да!), Что XYZ проект не приносит дохода (например, результаты изображения без рекламы, смеется), а затем ... они топорят его ..

Урок: не вступайте в брак (то есть создавайте свое программное обеспечение или услугу) вокруг API Google, который вы не сможете заменить на лету в любой момент ... Теперь я не LTS-наркоман - я Я просто горький, потому что я предпочел бы получать свои результаты Google через XML или JSON, чем отвратительный HTML-суп, который они вам бросают ...

Один вопрос @ Марсель ... Как я могу получить массив или хотя бы несколько ответов на результаты JSON, используя ту же "формулу". Я подумал, что, возможно, 1 означало «результат 1», но, увы, нет… Является ли это «уловкой» для создания потока контента ala в виде ленты Picasa xml ?

2 голосов
/ 17 апреля 2011

В целях безопасности большинство конфигураций сервера не позволяют использовать file_get_contents для удаленного файла (другое доменное имя). Это потенциально позволит хакеру загрузить код из любой точки Интернета на ваш сайт, а затем выполнить его.

Даже если конфигурация вашего сервера это позволяет, я бы не рекомендовал использовать ее для этой цели. Стандартный инструмент для извлечения удаленных данных HTTP - cURL , и есть множество из хороших учебников , делающих именно то, что вы должны сделать в этом случае.

Итак, допустим, вы успешно использовали cURL для получения массива JSON.

$json_output = json_decode($json); // Now the JSON is an associative array

foreach ($json_output['responseData']['results'] as $result)
{
    echo $result['url'] . '<br />';
}

Конечно, вам не нужно отображать URL там; Вы можете делать все, что вам нужно с ценностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...