thinkphp判断访客为手机端或PC端的方法


Posted in PHP onNovember 24, 2014

本文实例讲述了thinkphp判断访客为手机端或PC端的方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

近日准备给自己的网站做一个小升级,让用户在手机二维码扫描的时候显示适合手机端来展示的模版【我用的是ThinkPHP3.0】,代码是参考别人的

二、实现方法:

这里先说下大概的一个思路 简单两步:

统版本号和浏览器以及它的版本号(贴出的代码中数组中只有移动端信息,因此后面只需判断是否为数组中的某一个值即可).

根据数组中的值来判断访客是否为手机、pad、之类的移动端,如果是的话就规定项目路径、名称为你的手机端模版如

define('APP_NAME','mobi');
define('APP_PATH','./mobi/');

下面代码的话我尽量加上注释:

//判断是否属手机  

//代码看上去很多,其实就是数组里面显得多而乱,不要被表面现象所吓倒哦!  

 function is_mobile(){  

    $user_agent = $_SERVER['HTTP_USER_AGENT'];  

  

    $mobile_agents = Array("240x320","acer","acoon","acs-","abacho","ahong","airness","alcatel","amoi","android","anywhereyougo.com","applewebkit/525","applewebkit/532","asus","audio","au-mic","avantogo","becker","benq","bilbo","bird","blackberry","blazer","bleu","cdm-","compal","coolpad","danger","dbtel","dopod","elaine","eric","etouch","fly ","fly_","fly-","go.web","goodaccess","gradiente","grundig","haier","hedy","hitachi","htc","huawei","hutchison","inno","ipad","ipaq","ipod","jbrowser","kddi","kgt","kwc","lenovo","lg ","lg2","lg3","lg4","lg5","lg7","lg8","lg9","lg-","lge-","lge9","longcos","maemo","mercator","meridian","micromax","midp","mini","mitsu","mmm","mmp","mobi","mot-","moto","nec-","netfront","newgen","nexian","nf-browser","nintendo","nitro","nokia","nook","novarra","obigo","palm","panasonic","pantech","philips","phone","pg-","playstation","pocket","pt-","qc-","qtek","rover","sagem","sama","samu","sanyo","samsung","sch-","scooter","sec-","sendo","sgh-","sharp","siemens","sie-","softbank","sony","spice","sprint","spv","symbian","tablet","talkabout","tcl-","teleca","telit","tianyu","tim-","toshiba","tsm","up.browser","utec","utstar","verykool","virgin","vk-","voda","voxtel","vx","wap","wellco","wig browser","wii","windows ce","wireless","xda","xde","zte");  

    $is_mobile = false;  

    foreach ($mobile_agents as $device) {//这里把值遍历一遍,用于查找是否有上述字符串出现过  

       if (stristr($user_agent, $device)) { //stristr 查找访客端信息是否在上述数组中,不存在即为PC端。  

            $is_mobile = true;  

            break;  

        }  

    }  

    return $is_mobile;  

}  

define('THINK_PATH','./CORE/');  

if(is_mobile()){ //跳转至wap分组  

 echo '您是手机端访问的,已跳转到手机端';  

     define('APP_NAME','mobi');  

    define('APP_PATH','./mobi/');  

}else{  

 echo '你是PC端访问的';  

     define('APP_NAME','Home');  

    define('APP_PATH','./Home/');           

}  

 define('APP_DEBUG', false);  

require THINK_PATH.'core.php';

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
php 传值赋值与引用赋值的区别
Dec 29 PHP
PHP的SQL注入实现(测试代码安全不错)
Feb 27 PHP
php正则表达式(regar expression)
Sep 10 PHP
深入php define()函数以及defined()函数的用法详解
Jun 05 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
Jun 29 PHP
PHP删除指定目录中的所有目录及文件的方法
Feb 26 PHP
用php和jQuery来实现“顶”和“踩”的投票功能
Oct 13 PHP
php rmdir使用递归函数删除非空目录实例详解
Oct 20 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
laravel高级的Join语法详解以及使用Join多个条件
Oct 16 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 #PHP
php使用str_replace实现输入框回车替换br的方法
Nov 24 #PHP
thinkphp循环结构用法实例
Nov 24 #PHP
thinkphp特殊标签用法概述
Nov 24 #PHP
PHP中mysql_field_type()函数用法
Nov 24 #PHP
thinkphp模板输出技巧汇总
Nov 24 #PHP
php中mt_rand()随机数函数用法
Nov 24 #PHP
You might like
【星际争霸1】人族1v7家ZBath
2020/03/04 星际争霸
PHP脚本数据库功能详解(中)
2006/10/09 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
php实现字符串反转输出的方法
2015/03/14 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP加密解密类实例代码
2016/07/20 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
2017/06/17 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
jquery随意添加移除html的实现代码
2011/06/21 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
jquery datatable后台封装数据示例代码
2014/08/07 Javascript
javascript解析json实例详解
2014/11/05 Javascript
javascript使用prototype完成单继承
2014/12/24 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
javascript实现的简单计时器
2015/07/19 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
vue-cli webpack 引入swiper的操作方法
2018/09/15 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
[46:48]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第三局
2016/02/25 DOTA
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Python 移动光标位置的方法
2019/01/20 Python
使用python的pexpect模块,实现远程免密登录的示例
2019/02/14 Python
解决python中的幂函数、指数函数问题
2019/11/25 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
css3实现背景动态渐变效果
2019/12/10 HTML / CSS
Keds官方网站:购买帆布运动鞋和经典皮鞋
2016/11/12 全球购物
Ajax和javascript的区别
2013/07/20 面试题
2015年青年志愿者工作总结
2015/05/20 职场文书
单位领导婚礼致辞
2015/07/28 职场文书