嘿,我正在尝试使用PHP的谷歌图片API,我真的不知道该怎么做。
这基本上就是我现在所拥有的:
$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);
我从那里去哪里检索第一张图片网址?
答案 0 :(得分:10)
对代码示例的最后一行稍作更改,以下内容将输出结果集中第一个图像的网址。
<?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"];
?>
答案 1 :(得分:2)
出于安全原因,大多数服务器配置都不允许您在远程文件(不同的域名)上使用file_get_contents
。它可能允许黑客从Internet上的任何地方加载代码到您的站点,然后执行它。
即使您的服务器配置允许,我也不建议将其用于此目的。用于检索远程HTTP数据的标准工具是cURL,plenty good tutorials的{{3}}正在完成您在这种情况下应该执行的操作。
所以,假设您已成功使用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;你可以用价值做任何你需要的事情。
答案 2 :(得分:2)
我不得不说,这是非常棒的10种色调。。但我带来了坏消息(不要拍信使......)
也就是说,他们一样,跛脚。
我觉得好像谷歌可能已经雇用了一个太多的IBM类型的基础......因为它们似乎正在杀掉他们所有的“酷”API。
他们随意推出服务,承诺这个以及那个和另一件事 ......但是一些中层经理在意识到(ta-da!)之后尖叫那个 XYZ项目不会产生收入(比如没有广告的图像结果,哈哈)然后......他们就是斧头......
教训:不要结婚(也就是建立你的软件或服务)围绕任何谷歌API,你不能在飞行的瞬间取消...现在,我不是LTS-junkie - 我我只是苦涩,因为我更倾向于通过XML或JSON获取我的谷歌搜索结果,而不是他们向你扔的肮脏的HTML汤......
一个问题@Marcel ...如何使用相同的“公式”获取数组或至少多个JSON结果响应。我想也许1意味着“结果1”,但唉,不......他们是一个“技巧”来生成内容流ala a Picasa xml feed?