• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

使用bing api搜索网站的php封装类

PHP 水墨上仙 2420次浏览

这个类可以在网上搜索,使用了Bing搜索API。
它可以发送HTTP请求到Bing搜索API的Web服务器执行搜索Web内容使用以前获得的API密钥。
类可以搜索网页,图片,视频,新闻和相关的关键字。

<? 
class BingAPI{ 
    var $accountKey = ''; 
    var $ServiceRootURL =  'https://api.datamarket.azure.com/Bing/Search/'; 
    var $WebSearchURL; 
    var $searchText; 
    var $searchType; 
    var $request_data; 
    var $AutoGet = true; 
    var $ReturnType = 'JSON'; //Options: JSON, ARRAY 
    var $ResultsLimit = 10; 
    function __construct(){ 
    } 
    function setQuery_Type($query,$type){ 
    $this->searchText = $query; 
    switch($type){ 
        case 'Web':$this->searchType = 'Web';break; 
        case 'Image':$this->searchType = 'Image';break; 
        case 'News':$this->searchType = 'News';break; 
        case 'Video':$this->searchType = 'Video';break; 
        case 'Related':$this->searchType = 'RelatedSearch';break; 
    } 
    $this->createURL(); 
    } 
    function createURL(){ 
    $this->WebSearchURL = $this->ServiceRootURL . $this->searchType .'?$format=json&$top='.$this->ResultsLimit.'&Query='; 
    $this->context = stream_context_create(array( 
        'http' => array( 
        'request_fulluri' => true, 
        'header'  => "Authorization: Basic " . base64_encode($this->accountKey . ":" . $this->accountKey) 
        ) 
    )); 
    $this->request = $this->WebSearchURL . urlencode( '\'' . $this->searchText . '\''); 
    if($this->AutoGet){ 
        $this->get(); 
    } 
    } 
    function get(){ 
        $response = file_get_contents($this->request, 0, $this->context); 
        $this->request_data = json_decode($response); 
    } 
    function decoded_data(){ 
        $r_array = array(); 
        switch($this->searchType){ 
        case 'Web': 
            $obj = $this->request_data->d->results; 
            $ic = count($obj); 
            for($i=0;$i<$ic;$i++){ 
                $r_array[$i] = array('Title'=>$obj[$i]->Title,'Description'=>$obj[$i]->Description,'Url'=>$obj[$i]->Url); 
            } 
        break; 
        case 'Image': 
            $obj = $this->request_data->d->results; 
            $ic = count($obj); 
            for($i=0;$i<$ic;$i++){ 
                $r_array[$i] = array('Title'=>$obj[$i]->Title,'MediaURL'=>$obj[$i]->MediaUrl,'Width'=>$obj[$i]->Width,'Height'=>$obj[$i]->Height,'ContentType'=>$obj[$i]->ContentType,'Thumbnail'=>$obj[$i]->Thumbnail->MediaUrl); 
            } 
        break; 
        case 'News': 
            $obj = $this->request_data->d->results; 
            $ic = count($obj); 
            for($i=0;$i<$ic;$i++){ 
                $r_array[$i] = array('Title'=>$obj[$i]->Title,'Description'=>$obj[$i]->Description,'Url'=>$obj[$i]->Url,'Source'=>$obj[$i]->Source,'Date'=>$obj[$i]->Date); 
            } 
        break; 
        case 'Video': 
            $obj = $this->request_data->d->results; 
            $ic = count($obj); 
            for($i=0;$i<$ic;$i++){ 
                $r_array[$i] = array('Title'=>$obj[$i]->Title,'MediaUrl'=>$obj[$i]->MediaUrl,'DisplayUrl'=>$obj[$i]->DisplayUrl,'Runtime'=>$obj[$i]->Runtime,'Thumbnail'=>$obj[$i]->Thumbnail->MediaUrl); 
            } 
        break; 
        case 'RelatedSearch': 
            $obj = $this->request_data->d->results; 
            $ic = count($obj); 
            for($i=0;$i<$ic;$i++){ 
                $r_array[$i] = array('Keyword'=>$obj[$i]->Title); 
            } 
        break; 
        } 
        switch($this->ReturnType){ 
                case 'JSON':return json_encode($r_array); 
                case 'ARRAY':return $r_array; 
        } 
    } 
} 
?>

使用方法

<? 
include_once("bing_class.php"); 
$Bing = new BingAPI; 
$Bing->setQuery_Type('sushi','Image'); 
$Bing->ReturnType = 'ARRAY'; 
print_r($Bing->decoded_data()); 
?>


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明使用bing api搜索网站的php封装类
喜欢 (0)
加载中……