今天用到了移动适配,百度移动端适配,为了能够准确的识别手机还是电脑,所以我们用了百度的终端适配服务,经过测试这个东西的准确率非常高,为了方便以后人的使用我就把它封装成了一个类,就不必要再写那么多的代码,只需要你有一个百度的应用提取上边的client_id和client_secret就可以使用了!
<?php /** * Baiapt.class.php 百度移动终端适配类 * * @copyright widuu * @license http://yun.widuu.com * @lastmodify 2013-5-30 */ 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是电脑如果大家还有什么不明白的,可以留言或者发送邮件到admin#widuu.com到我的邮箱咨询,我会尽快回答您们!
发表评论 取消回复