我可以使用雅虎开发者网站上的说明,使用我的 API 密钥从雅虎检索结果。http://developer.yahoo.com/boss/search/boss_api_guide/codeexamples.html#
代码:
if ($_POST['query'])
{
$newline="<br />";
$query = urlencode("'{$_POST['query']}'");
require("OAuth.php");
$cc_key = "key goes here";
$cc_secret = "secret goes here";
$url = "http://yboss.yahooapis.com/ysearch/web";
$args = array();
$args["q"] = "$query";
$args["format"] = "json";
$consumer = new OAuthConsumer($cc_key, $cc_secret);
$request = OAuthRequest::from_consumer_and_token($consumer, NULL,"GET", $url, $args);
$request->sign_request(new OAuthSignatureMethod_HMAC_SHA1(), $consumer, NULL);
$url = sprintf("%s?%s", $url, OAuthUtil::build_http_query($args));
$ch = curl_init();
$headers = array($request->to_header());
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$rsp = curl_exec($ch);
$results = json_decode($rsp);
print_r($results);
}
使用print_r($results)如上所示,我得到如下结果(从搜索“大象”中提取的前三个结果”中提取的前三个结果):
请注意,我已将 URL 更改为“WWW”,因为我需要至少 10 个声望才能发布超过 2 个链接。
对大象的威胁 » 更多关于大象:基本事实。威胁。捍卫者正在做些什么来提供帮助。你能做什么...) [2] => stdClass Object ([date] => [clickurl] => WWW [url] => WWW [dispurl] => kids.nationalgeographic.com/.../african-elephant [title] => Africa Elephant Facts and Pictures -- National Geographic Kids [abstract] => 儿童关于大象的专题,包括照片、视频、音频、有趣的事实、电子邮件明信片和其他动物的链接。) [ 3] => stdClass Object ( [date] => [clickurl] => WWW [url] => WWW [dispurl] =>elephant.elehost.com/About_Elephants/about_elephants.htm [title] => About Elephants [abstract] => 大象信息库中关于大象的一切!此页面包含大象相关事实的摘要,让您了解大象的世界。)
我试图以清晰的格式输出结果,如下所示:
代码尝试 1:
foreach ($results->{ 'results' } as $item )
{
echo "<a href=\"{$item->{ 'url' }}\"><font color ='blue'>{$item->{ 'title' }}</font></a>".": "."$newline"."$newline".$item->{ 'abstract' }."\n\n";
}
我还尝试了以下方法,但没有成功:
代码尝试 2:
echo $results['results']['url'];
echo $results['results']['title'];
echo $results['results']['abstract'];
关于做什么的任何想法?
谢谢。