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
答案 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);