日期:2006-09-27 作者:喜騰小二 來源:PHPChina
一、 引言
Web世界中一項廣為使用的功能就是搜尋。隨着Web技術的日益發展,為了更好地滿足客戶的需求,常規搜尋
引擎開始對更多的非常規方式"敞開了大門"。在這方麵,Yahoo!率先提供出其Y!Q服務。這個新的服務能夠使妳搜尋任何web页面,前提是該页面的作
者必須包括在他們的web页面中。是服務技術實現了把相關的搜尋結果呈現到讀者眼前,從而嚮讀者展示更多的資訊而不必離開他們的當前页面。
Yahoo!的Y!Q服務的確是一個偉大的想法,但是它的出現也受到了一些批評。原因何在?首先,它要求用戶端必須使用Yahoo!的
Javascript並且妳必須新增一個<form/>元素,以便滿足Yahoo!的搜尋要求。對於許多網站作者來說,提供該服務要求付出太多的努力。並
且,在所有這些條件滿足之後,搜尋結果將以Yahoo!風格展現,從而破壞了使用者網站的外觀感覺。
幸運的是,Yahoo!並非唯一的
提供"從妳的網站提供搜尋結果"服務的搜尋引擎。MSN
Search也提供一種類似服務,除了它能夠使web開發者控制外觀感覺以外。這種能力來自於MSN
Search提供它的搜尋結果的RSS版本,從而使得訂閱一個特定的搜尋或使用Ajax方法把該結果新增到妳的页面成為可能。
儘管Google已經率先實現了這種新的"從妳的站點進行搜尋"技術;但是,在本文成文之時,與Google相關的Google BlogSearch Beta也已經能夠以RSS或者Atom格式提供返回的結果。
二、 伺服器端元件
使用MSN Search執行搜尋時,妳會看到一個桔黃色的XML影像出現在結果页面的底部。按這個影像將會把妳帶到一個新的页面,並提供給妳訂閱該搜尋的URL。
這樣以來,妳就可以編寫伺服器端程式碼以檢索遠端饋送。對於本文中的搜尋窗,妳將使用PHP檢索搜尋饋送。來自於伺服器應用程式請求資訊的URL看起來如下所示:
websearch.php?search=[SEARCHTERM] |
<?php header("Content-Type: text/xml"); header("Cache-Control: no-cache");if ( isset($_GET["search"]) ) { $searchTerm = urlencode( stripslashes($_GET["search"]) ); $url = "http://search.msn.com/results.aspx?q=$searchTerm&format=rss"; $xml = file_get_contents($url); echo $xml; } ?> |
var msnWebSearch ={}; |
<a href="#" onclick='msnWebSearch.search(event,"Professional Ajax"); return false;'> Professional Ajax </a> |
<divclass="ajaxWebSearchBox"> <div class="ajaxWebSearchHeading">MSN Search Results <a class="ajaxWebSearchCloseLink" href="#">X</a> </div> <div class="ajaxWebSearchResults"> <a class="ajaxWebSearchLink" target="_new" /> <a class="ajaxWebSearchLink" target="_new" /> </div> </div> |