今天用到了移动适配,百度移动端适配,为了能够准确的识别手机还是电脑,所以我们用了百度的终端适配服务,经过测试这个东西的准确率非常高,为了方便以后人的使用我就把它封装成了一个类,就不必要再写那么多的代码,只需要你有一个百度的应用提取上边的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到我的邮箱咨询,我会尽快回答您们!

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部