谷歌搜索,json_decode给出null

时间:2016-09-16 10:58:59

标签: php json

th:replace

我尝试获取搜索结果,但作为回报,json_decode给出了空值。 试图寻找答案但失败了。

$query = "Poultry meat is a major source of animal protein considering"; function fetch_google($query) { $cleanQuery = str_replace(" ","+",$query); $url = 'http://www.google.com/search?q='.urlencode($cleanQuery); $data=file_get_contents($url); $json = json_decode($data, true); for($x=0;$x<count($json->responseData->results);$x++){ echo "<b>Result ".($x+1)."</b>"; echo "<br>URL: "; echo $json->responseData->results[$x]->url; echo "<br>VisibleURL: "; echo $json->responseData->results[$x]->visibleUrl; echo "<br>Title: "; echo $json->responseData->results[$x]->title; echo "<br>Content: "; echo $json->responseData->results[$x]->content; echo "<br><br>"; } } fetch_google($query); 给出结果..但不是$ json

2 个答案:

答案 0 :(得分:1)

您加载了完整的Google搜索结果页面。 $data中的结果将是页面返回的完整HTML,而不是json格式化的结果。

您需要调用Google API才能获得可以从PHP轻松操作的JSON

查看有关Google搜索的官方文档here

答案 1 :(得分:0)

在解码原始'google json'时可能还必须使用此功能

$php_json_txt = str_replace('\\x', '\\\\x', $google_json_txt);
$data = json_decode($php_json_txt, true);