日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

利用Yahoo! Search API開發自已的搜索引擎-php版

瀏覽:56日期:2023-12-26 17:31:51

美國東部時間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實現搜索的效果,全部腳本如下:

<?php// Yahoo Web Services PHP Example Code// Rasmus Lerdorf// www.mypchelp.cn

$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');?><html><head><title>PHP Yahoo Web Service Example Code</title></head><body><form action='YahooSearchExample.php' method='GET'>Search Term: <input type='text' name='query' /><br />Zip Code: <input type='text' name='zip' /> (for local search)<br /><input type='submit' value=' Go! ' /><select name='type'><?php foreach($service as $name => $val) { if(!empty($_REQUEST['type']) && $name == $_REQUEST['type']) echo '<option SELECTED>$name</option>n'; else echo '<option>$name</option>n';} ?></select></form><?phpfunction done() {?></body></html><?phpexit;}

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 errorsif (!$dom = domxml_open_mem($xml,DOMXML_LOAD_PARSING,$error)) { echo 'XML parse errorn'; foreach ($error as $errorline) { /* For production use this should obviously be logged to a file instead */ echo $errorline['errormessage'].'<br />n'; echo ' Node; : ' . $errorline['nodename'] . '<br />n'; echo ' Line; : ' . $errorline['line'] . '<br />n'; echo ' Column : ' . $errorline['col'] . '<br />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 servicesfunction 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 '<p>Matched ${res[totalResultsAvailable]}, showing $first to $last</p>n';if(!empty($res['ResultSetMapUrl'])) { echo '<p>Result Set Map: <a href='http://www.b3g6.com/bcjs/${res[ResultSetMapUrl]}'>${res[ResultSetMapUrl]}</a></p>n';}for($i=0; $i<$res['totalResultsReturned']; $i++) { foreach($res[$i] as $key=>$value) { switch($key) { case 'Thumbnail': echo '<img src='http://www.b3g6.com/bcjs/${value[Url]}' />n'; break; case 'Cache': echo 'Cache: <a href='http://www.b3g6.com/bcjs/${value[Url]}'>${value[Url]}</a> [${value[Size]}]<br />n'; break; case 'PublishDate': echo '<b>$key:</b> '.strftime('%X %x',$value); break; default: if(stristr($key,'url')) echo '<a href='http://www.b3g6.com/bcjs/$value'>$value</a><br />n'; else echo '<b>$key:</b> $value<br />'; break; } } echo '<hr />n';}

// Create Previous/Next Page linksif($start > 1) echo '<a href='http://www.b3g6.com/YahooSearchExample.php'. '?query='.rawurlencode($_REQUEST['query']). '&zip='.rawurlencode($_REQUEST['zip']). '&type='.rawurlencode($_REQUEST['type']). '&start='.($start-10).''>&lt;-Previous Page</a> &nbsp; ';if($last < $res['totalResultsAvailable']) echo '<a href='http://www.b3g6.com/YahooSearchExample.php'. '?query='.rawurlencode($_REQUEST['query']). '&zip='.rawurlencode($_REQUEST['zip']). '&type='.rawurlencode($_REQUEST['type']). '&start='.($last+1).''>Next Page-&gt;</a>';done();?>

有興趣的朋友還可以看一下由[動態網站制作指南]所制作的ASP版本:http://www.mypchelp.cn/yahoo/

標簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久亚州av| 免费视频一区二区三区在线观看| 电影91久久久| 国内一区二区三区| 免费看av不卡| 欧美激情国产在线| 色婷婷狠狠五月综合天色拍| 国产伊人精品| 蜜臀av性久久久久蜜臀aⅴ流畅| 综合精品一区| 国产精品.xx视频.xxtv| 国产精品久久久久久久久妇女| 成人精品亚洲| 免费成人在线影院| 国产精品成人自拍| 欧美天堂视频| 国产精品日本欧美一区二区三区| 亚洲欧洲av| 精品一区二区三区中文字幕| 久久久国产亚洲精品| 亚洲永久字幕| 国产精品资源| 亚洲不卡av不卡一区二区| 亚洲图片久久| 久久精品欧洲| 午夜欧美精品久久久久久久| 国产日韩中文在线中文字幕 | 国产精品国产一区| 九九久久电影| 国产另类在线| 99香蕉国产精品偷在线观看| 国产免费播放一区二区| 秋霞国产精品| 日韩福利视频一区| 国模大尺度视频一区二区| 亚洲精品一区二区在线看| 人人精品久久| 激情久久五月| 美女毛片一区二区三区四区最新中文字幕亚洲 | 999国产精品999久久久久久| 男人的天堂久久精品| 国产精品久久久久久久久久久久久久久 | 中文一区在线| 国产探花在线精品一区二区| 欧美日韩国产免费观看视频| 日本精品久久| 国产高清一区二区| 久久精品天堂| 中文字幕日韩欧美精品高清在线| 桃色av一区二区| 欧美日韩xxxx| 亚洲一区不卡| 成人免费电影网址| 日韩在线网址| 91精品福利| 国产成人调教视频在线观看| 亚州精品视频| 蜜桃tv一区二区三区| 久久一区亚洲| 欧美伊人影院| 亚洲精品自拍| 99国产精品99久久久久久粉嫩| 免费亚洲婷婷| 日本免费在线视频不卡一不卡二| 女同性一区二区三区人了人一| 日产午夜精品一线二线三线| 奇米亚洲欧美| 一二三区精品| 免费毛片在线不卡| 国产资源在线观看入口av| 国产精品4hu.www| 日本午夜精品久久久久| 六月丁香综合| 一区在线观看| 亲子伦视频一区二区三区| 久久午夜影院| 国产精品jk白丝蜜臀av小说| 日韩午夜视频在线| 玖玖玖国产精品| 亚洲免费精品| 亚洲午夜在线| 久久久蜜桃一区二区人| 粉嫩av一区二区三区四区五区| 日韩激情一二三区| 蜜桃视频一区二区三区在线观看| 91精品1区| 欧美精品一线| 国产日韩专区| 日本大胆欧美人术艺术动态| 亚洲一区亚洲| 欧美精品一卡| 国产一区白浆| 亚洲在线网站| 在线观看亚洲精品福利片| 免费日本视频一区| 综合干狼人综合首页| 亚洲免费中文| 一区二区三区四区日韩| 9久re热视频在线精品| 欧美粗暴jizz性欧美20| 五月天激情综合网| 噜噜噜久久亚洲精品国产品小说| 亚洲欧美久久| 亚洲综合色婷婷在线观看| 一区二区精品| 日韩精品视频在线看| 欧美日韩黄网站| 久久精品国产久精国产爱| 日本久久精品| 欧美日韩一二| 丝袜美腿一区二区三区| 亚洲v天堂v手机在线| 青青国产91久久久久久| 中文字幕一区二区三区在线视频| 视频在线在亚洲| 亚洲免费成人av在线| 亚洲欧美在线综合| 国产精品一区二区中文字幕| 精品淫伦v久久水蜜桃| 日韩免费av| 亚洲精品在线观看91| 爽好久久久欧美精品| 深夜福利亚洲| 麻豆精品av| 欧美综合另类| 日本 国产 欧美色综合| 日本欧美一区二区| 精品视频高潮| 日韩成人亚洲| 午夜亚洲福利| 久久精品国产亚洲一区二区三区| 精品日韩视频| 麻豆久久精品| 国产精品qvod| 偷拍欧美精品| 国产亚洲精aa在线看| 激情视频网站在线播放色| 91精品观看| 久久国产免费看| 精品国产免费人成网站| 狠狠干综合网| 国产精品s色| 亚洲精品电影| 视频一区中文字幕精品| 精品久久91| 日韩午夜电影| 久久不见久久见免费视频7| 国产99久久| 国产精品一区二区精品| 不卡一区综合视频| 国产亚洲字幕| 九九在线精品| 久久av导航| 丝袜美腿一区二区三区| 精品深夜福利视频| 久久国产精品99国产| 国产一区二区色噜噜| 首页欧美精品中文字幕| 久久中文字幕一区二区| 99视频精品免费观看| 精品亚洲精品| 一区二区三区四区日韩| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 午夜精品久久久久久久久久蜜桃| 亚洲天堂免费| 亚洲一级少妇| 国产精品地址| 免费视频最近日韩| 欧美三区四区| 欧美激情综合| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产精品成久久久久| 免费人成网站在线观看欧美高清| 福利精品在线| 国产精品欧美在线观看| 一本一道久久a久久| 天堂日韩电影| 欧美国产小视频| 国产极品久久久久久久久波多结野| 日韩制服丝袜先锋影音| 香蕉成人av| 精品72久久久久中文字幕| 日韩精品免费观看视频| 精品一区亚洲| 久久久久久夜| 国产精品一区二区av交换| 亚洲精品一级| 亚洲综合日韩| 五月综合激情| 久久精品国产大片免费观看| 国产在线不卡一区二区三区 | 久久精品影视| 最新中文字幕在线播放| 国产欧美69| 青青草国产成人99久久| 亚洲综合小说| 蜜桃视频第一区免费观看| 成人久久一区| 久久国产主播| 亚洲国产专区校园欧美|