龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

php 移动适配识别手机和电脑的类-百度终端适配封装类

时间:2014-07-13 02:17来源:网络整理 作者:网络 点击:
分享到:
移动适配识别手机和电脑的类-百度终端适配封装类 今天用到了移动适配,百度移动端适配,为了能够准确的识别手机还是电脑,所以我们用了百度的终端适配服务,经过测试这个东西的

今天用到了移动适配,百度移动端适配,为了能够准确的识别手机还是电脑,所以我们用了百度的终端适配服务,经过测试这个东西的准确率非常高,为了方便以后人的使用我就 把它封装成了一个类,就不必要再写那么多的代码,只需要你有一个百度的应用提取上边的client_id和client_secret就可以使用了!

<?php
/**
 *  Baiapt.class.php 百度移动终端适配类
 */
 class Baiapt{
    private $client_id;         //百度应用 duapp.com中申请添加应用 就可以获得API Key
    private $client_secret;     //对应的Secret Key
    private $grant_type = 'client_credentials';
    private $token;
    function __construct($client_id,$client_secret){
        $this -> client_id = $client_id;
        $this -> client_secret = $client_secret;
        $this -> token = $this ->gettoken();
    }

    //封装的https的post方法获得返回参数
    private function post($url,$post,$header="Content-type: text/xml"){
        $ch = curl_init($url);
        curl_setopt($ch ,CURLOPT_HEADER, $header);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_POST, 1);
        if(is_array($post)){
            $post = http_build_query($post ,'','&');
        }
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
        $content = curl_exec($ch);
        curl_close($ch);
        return $content;
    }

    //获取token的方法
    private function gettoken(){
        $post = array(
            'grant_type' =>$this->grant_type,
            'client_id' =>$this->client_id,
            'client_secret' =>$this->client_secret,
        );
        $result = $this->post('https://openapi.baidu.com/oauth/2.0/token',$post);
        $token = json_decode($result)->access_token;
        return $token;
    }

    /**
     * 识别手机和客户端
     * 
     * @param string $useragent 获取的浏览器类型$_SERVER['HTTP_USER_AGENT']获得
     * @return 手机和电脑 $pc == 1是手机 2是电脑
     */
     public function Pcphone($useragent){
         $data = array(
                 'access_token' =>$this->token,
                 'lcid'=>'miad',
                 'user_agent'=>$useragent,
         );
         $result = $this->post('https://openapi.baidu.com/rest/2.0/wise/adapt',$data);
         $pc = json_decode($result)->device_type;
         if($pc == 1){
            return "手机";
         }else{
            return "电脑";
         }
     }
 }

 $pc = new Baiapt('wlNdR8VdDc1ZCiQfdG8TWNoY','idDM8IFCKK0IhQHSTgKb3m9dKwzNdttK');  //输入百度的应用的api 和key就可以了
 echo $pc->Pcphone($_SERVER['HTTP_USER_AGENT']); //1是手机 2是电脑
//该片段来自于http://outofmemory.cn
精彩图集

赞助商链接