利用Yahoo! Search API开发自已的搜索引擎-php版_PHP
Yahoo
美国东部时间3月1日,雅虎公司联合创始人之一的杨致远将宣布公司的搜索网络将进入Web服务。雅虎公司在www.developer.yahoo.com网站建立了Yahoo Search Developer Network,公司计划在此纽约举行的搜索引擎战略大会(Search Engine Strategies Conference)上推出这一计划。该网络将允许开发者在雅虎搜索之上建立新的应用程序,其中包括图像、视频、新闻以及地区搜索等内容。想要使用这项服务的会员必须先去http://api.search.yahoo.com/webservices/register_application 申请一个自已的ID号,注:每个ID号每天只能搜索5000次。
下面我们看一下,如何用PHP脚本调用Yahoo! Search API实现搜索的效果,全部脚本如下:
// Yahoo Web Services PHP Example Code
// Rasmus Lerdorf
// www.knowsky.com
$appid = 'YahooDemo';
// 在这输入你申请的ID号
$service = array('image'=>'http://api.search.yahoo.com/ImageSearchService/V1/imageSearch',
'local'=>'http://api.local.yahoo.com/LocalSearchService/V1/localSearch',
'news'=>'http://api.search.yahoo.com/NewsSearchService/V1/newsSearch',
'video'=>'http://api.search.yahoo.com/VideoSearchService/V1/videoSearch',
'web'=>'http://api.search.yahoo.com/WebSearchService/V1/webSearch');
?>
function done() {?>
exit;
}
if(empty($_REQUEST['query']) || !in_array($_REQUEST['type'],array_keys($service))) done();
// Ok, here we go, we have the query and the type of search is valid
// First build the query
$q = '?query='.rawurlencode($_REQUEST['query']);
if(!empty($_REQUEST['zip'])) $q.="&zip=".$_REQUEST['zip'];
if(!empty($_REQUEST['start'])) $q.="&start=".$_REQUEST['start'];
$q .= "&appid=$appid";
// Then send it to the appropriate service
$xml = file_get_contents($service[$_REQUEST['type']].$q);
// Parse the XML and check it for errors
if (!$dom = domxml_open_mem($xml,DOMXML_LOAD_PARSING,$error)) {
echo "XML parse error\n";
foreach ($error as $errorline) {
/* For production use this should obviously be logged to a file instead */
echo $errorline['errormessage']."
\n";
echo " Node : " . $errorline['nodename'] . "
\n";
echo " Line : " . $errorline['line'] . "
\n";
echo " Column : " . $errorline['col'] . "
\n";
}
done();
}
// Now traverse the DOM with this function
// It is basically a generic parser that turns limited XML into a PHP array
// with only a couple of hardcoded tags which are common across all the
// result xml from the web services
function xml_to_result($dom) {
$root = $dom->document_element();
$res['totalResultsAvailable'] = $root->get_attribute('totalResultsAvailable');
$res['totalResultsReturned'] = $root->get_attribute('totalResultsReturned');
$res['firstResultPosition'] = $root->get_attribute('firstResultPosition');
$node = $root->first_child();
$i = 0;
while($node) {
switch($node->tagname) {
case 'Result':
$subnode = $node->first_child();
while($subnode) {
$subnodes = $subnode->child_nodes();
if(!empty($subnodes)) foreach($subnodes as $k=>$n) {
if(empty($n->tagname)) $res[$i][$subnode->tagname] = trim($n->get_content());
else $res[$i][$subnode->tagname][$n->tagname]=trim($n->get_content());
}
$subnode = $subnode->next_sibling();
}
break;
default:
$res[$node->tagname] = trim($node->get_content());
$i--;
break;
}
$i ;
$node = $node->next_sibling();
}
return $res;
}
$res = xml_to_result($dom);
// Ok, now that we have the results in an easy to use format,
// display them. It's quite ugly because I am using a single
// display loop to display every type and I don't really understand HTML
$first = $res['firstResultPosition'];
$last = $first $res['totalResultsReturned']-1;
echo "
Matched ${res[totalResultsAvailable]}, showing $first to $last
\n";if(!empty($res['ResultSetMapUrl'])) {
echo "
Result Set Map: ${res[ResultSetMapUrl]}
\n";}
for($i=0; $i foreach($res[$i] as $key=>$value) {
switch($key) {
case 'Thumbnail':
echo "
break;
case 'Cache':
echo "Cache: ${value[Url]} [${value[Size]}]
\n";
break;
case 'PublishDate':
echo "$key: ".strftime('%X %x',$value);
break;
default:
if(stristr($key,'url')) echo "$value
\n";
else echo "$key: $value
";
break;
}
}
echo "
\n";
}
// Create Previous/Next Page links
if($start > 1)
echo '<-Previous Page ';
if($last < $res['totalResultsAvailable'])
echo 'Next Page->';
done();
?>
有兴趣的朋友还可以看一下由[动态网站制作指南]所制作的ASP版本:http://www.knowsky.com/yahoo/

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

百度雲是能夠讓使用者存放很多文件的軟體,那麼百度雲端硬碟搜尋引擎入口是什麼呢?使用者可以輸入https://pan.baidu.com這個網址就能夠進入百度雲盤,這篇百度雲盤搜尋引擎最新入口分享就能夠告訴大家具體的介紹,以下就是詳細的介紹,趕緊看看吧。百度雲盤搜尋引擎入口1、千帆搜尋網址:https://pan.qianfan.app支援網盤:聚合搜索,阿里、百度、夸克、藍奏、天翼、迅雷網盤查看方式:需登入、關注公號獲取啟動碼優點:網盤很全,資源很多,介面簡單。 2、貓狸盤搜尋網址:alipansou.c

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

Go語言開發行動應用程式教學隨著行動應用程式市場的不斷蓬勃發展,越來越多的開發者開始探索如何利用Go語言開發行動應用程式。作為一種簡潔高效的程式語言,Go語言在行動應用開發中也展現了強大的潛力。本文將詳細介紹如何利用Go語言開發行動應用程序,並附上具體的程式碼範例,幫助讀者快速入門並開始開發自己的行動應用程式。一、準備工作在開始之前,我們需要準備好開發環境和工具。首

五大熱門Go語言庫總結:開發必備利器,需要具體程式碼範例Go語言自從誕生以來,受到了廣泛的關注和應用。作為一門新興的高效、簡潔的程式語言,Go的快速發展離不開豐富的開源程式庫的支援。本文將介紹五大熱門的Go語言庫,這些庫在Go開發中扮演了至關重要的角色,為開發者提供了強大的功能和便利的開發體驗。同時,為了更好地理解這些庫的用途和功能,我們會結合具體的程式碼範例進行講

Android開發是一項繁忙而又令人興奮的工作,而選擇適合的Linux發行版來進行開發則顯得尤為重要。在眾多的Linux發行版中,究竟哪一個最適合Android開發呢?本文將從幾個方面來探討這個問題,並給出具體的程式碼範例。首先,我們來看看目前流行的幾個Linux發行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優點和特點。

《了解VSCode:這款工具到底是用來做什麼的? 》身為程式設計師,無論是初學者或資深開發者,都離不開程式碼編輯工具的使用。在眾多編輯工具中,VisualStudioCode(簡稱VSCode)作為一款開源、輕量級、強大的程式碼編輯器備受開發者歡迎。那麼,VSCode到底是用來做什麼的呢?本文將深入探討VSCode的功能和用途,並提供具體的程式碼範例,以幫助讀者

谷歌瀏覽器怎麼更換搜尋引擎?谷歌瀏覽器是一款很受用戶歡迎的瀏覽器,它不僅擁有簡單易上手的服務、實用的工具等輔助功能,能夠滿足不同用戶的不同需求,搜尋引擎一般都是默認谷歌,如果我們想要更換該怎麼設定呢?下面小編就來分享一下方法吧。 更換方法 1、點選開啟Google瀏覽器。 2、點選三點圖示開啟選單介面。 3、點選設定選項可以進入到瀏覽器的設定介面中。 4、在設定介面找到搜尋引擎模組。 5、點選管理搜尋引擎按鈕。 6、可以看到一個新增按鈕,點選這個新增按鈕可以新增搜尋引擎。
