2016-09-16 2 views
0
$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); 

ich bin versuchen Suchergebnis zu erhalten, aber im Gegenzug json_decode Nullwerte geben .. versucht, die Suche nach Antworten aber nicht.Google-Suche, gibt json_decode null

var_dump($url); gibt Ergebnis .. aber nicht $ json

Antwort

1

geladen Sie die ganze Seite Ergebnisse der Google-Suche. Das Ergebnis in $data wird die vollständige HTML von der Seite zurückgegeben, kein json-formatiertes Ergebnis.

Sie müssen die Google-API aufrufen, um einen JSON zu erhalten, die leicht von PHP

Überprüfen Sie die offizielle Dokumentation here über Google-Suche manipulieren können

+0

Gibt es eine andere Möglichkeit, bestimmte Daten ohne API zu erhalten ?? –

+0

Wenn Sie das HTML-Ergebnis von http://www.google.com/search?q= analysieren, sind Sie nicht sicher, ob es im selben Format verbleibt. Vielleicht morgen google entscheiden, wie sie die Ergebnisse anzeigen. Die beste Option wird sein, api zu verwenden, und es ist der leichtere. –

+0

Ok .. bitte geben Sie einen Beispielcode .. nicht in der Lage, Google-Dokumentation zu verstehen. –

0

Könnte müssen auch diese verwenden, wenn rohe Decodierung ' google json '

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