-1

我正在尝试构建一个元搜索引擎,并使用以下代码生成 JSON 结果。

<?php

$search = $_GET['results'];
if(isset($_GET['results']) && $_GET['results'] != "")
{

    echo "<br />Your Search Result Array:<br /><br />";

$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&"
    . "q=".str_replace(' ', '%20', $_GET['results']);

$ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');
$body = curl_exec($ch);
curl_close($ch);


$json = json_decode($body);

print_r($json);

这给了我 JSON 未排序的结果,没有顺序或超链接。我正在尝试使用 PHP 解析结果。当我在搜索引擎中输入“你好”时,它给了我

stdClass Object ( [responseData] => stdClass Object ( [results] => Array ( [0] =>stdClass Object ( [GsearchResultClass] => GwebSearch [unescapedUrl] => http://www.hellomagazine.com/ [url] => http://www.hellomagazine.com/ [visibleUrl] => www.hellomagazine.com [cacheUrl] => http://www.google.com/search?q=cache:QzMhUCC4zBoJ:www.hellomagazine.com [title] => HELLO! Online: celebrity & royal news, magazine, babies, 

作为前 4 行。我试过了

foreach($results['responsedata']['results']['GsearchResultsClass'] as $result)
{

echo $result['title'].'<br/>';
}   

但这给我留下了 foreach 行上的大量错误。

非常感谢任何建议,我不熟悉 JSON,所以欢迎任何关于如何解析结果的帮助。

4

1 回答 1

2

您使用的默认返回类型json_encode,它返回一个 stdClass 对象。如果您想将其作为关联数组使用,则将以下参数传递给 json_decode。

$json = json_decode($json, true);
于 2013-07-06T13:19:00.880 回答