-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_encodestdClass オブジェクトを返すデフォルトの戻り値の型を使用します。連想配列として使用する場合は、次のパラメーターを json_decode に渡します。

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