滿多網站都有製作. 站內的 search API . 今天就來介紹一下 各 API 的使用
【Google】 (目前是使用 1.0 的版本. 之後會補上 新版)
<?
$q = '';
# 要搜尋的 Keyword
$url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&hl=zh-TW";
$url_search = $url."&q=".$q;
$result = file_get_contents($url_search);
$search_result = json_decode($result);
# search_result 就是得到的 search 資料. 取得的資料會是 jason 格式. 所以有做一個 json_decode 的動作
?>
【Yahoo】
# 環境變數
<?
$q = '';
# 要搜尋的 Keyword
$user_ip = $_SERVER['REMOTE_ADDR'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$x_forwarded_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
$affilData = "ip=" . $user_ip;
if(!empty($x_forwarded_ip)) $affilData .= "&xfip=" . $x_forwarded_ip;
$serveUrl = '';
# 是指. 你的網站 的搜尋的頁面呀. 例如: http://www.kimo.com.tw/search
$search_baseurl = "http://xml.tw.overture.com/d/search/p/standard/xml/tw/2_9/multi/";
# Yahoo 搜尋網址
$search_lang = "&affilData=".urlencode($affilData)."&serveUrl=".urlencode($serveUrl)."&keywordCharEnc=utf8&outputCharEnc=utf8"
# 語系設定. 這邊是設上 utf8
$url_search = $search_baseurl."?Keywords=".$q."&Partner=url_tw_xml_search";
$loadurl = $url_search.$search_lang;
$loadurl .= "&is=" . $vis;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $loadurl);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$xml_data = curl_exec ($ch);
curl_close ($ch);
$parser = xml_parser_create();
if($parser) {
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, 'UTF-8');
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($parser, trim($xml_data), $xml_values);
xml_parser_free($parser);
// $xml_values 由於取得是 XML 格式. 所以這邊有做了一下 xml_parser
}
?>
【Bing】
<?
// Bing API
$accountKey = '';
# 由於 Bing Search 需要 API 的 key
# 可以到註冊會員後. 就可以取得 一個 API 的 KEY
#
# 相關網址: https://datamarket.azure.com/dataset/5BA839F1-12CE-4CCE-BF57-A49D98D29A44
$q = '';
# 要搜尋的 Keyword
$request = 'https://api.datamarket.azure.com/Data.ashx/Bing/Search/Composite?Sources=%27web%27&Query=%27'.$q.'%27&$format=json';
$ch = curl_init($request);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, $accountKey . ":" . $accountKey);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$json_obj = json_decode($response);
# response 就是得到的 search 資料. 取得的資料會是 jason 格式. 所以有做一個 json_decode 的動作
?>