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 相关文章推荐
一个分页的论坛
Oct 09 PHP
PHP session有效期问题
Apr 26 PHP
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
PHP新手NOTICE错误常见解决方法
Dec 07 PHP
PHP对象转换为数组函数(递归方法)
Feb 04 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
php在apache环境下实现gzip配置方法
Apr 02 PHP
php类常量用法实例分析
Jul 09 PHP
php文件上传后端处理小技巧
May 22 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
Apr 04 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
php中文件上传的安全问题
2006/10/09 PHP
深入理解php的MySQL连接类
2013/06/07 PHP
简单谈谈php中ob_flush和flush的区别
2014/11/27 PHP
php下载文件超时时间的设置方法
2016/10/06 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
JavaScript关于select的相关操作说明
2010/01/13 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
js简单实现HTML标签Select联动带跳转
2013/10/23 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
jquery向上向下取整适合分页查询
2014/09/06 Javascript
JS实现的竖向折叠菜单代码
2015/10/21 Javascript
详解Javascript继承的实现
2016/03/25 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
vue基于mint-ui的城市选择3级联动的示例
2017/10/25 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
jQuery实现小火箭返回顶部特效
2020/02/03 jQuery
Element Badge标记的使用方法
2020/07/27 Javascript
Python中Collection的使用小技巧
2014/08/18 Python
python提示No module named images的解决方法
2014/09/29 Python
Python内置模块ConfigParser实现配置读写功能的方法
2018/02/12 Python
如何解决pycharm调试报错的问题
2020/08/06 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
飞利信loadrunner和软件测试笔试题
2012/09/22 面试题
小学教研工作制度
2014/01/15 职场文书
信息技术教学反思
2014/02/12 职场文书
优秀毕业生推荐信范文
2014/03/07 职场文书
2014学生会工作总结报告
2014/12/02 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
2016创先争优活动党员公开承诺书
2016/03/24 职场文书
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
我国拿下天问一号火星着陆区附近 22 个地理实体命名:平乐、西柏坡、古田、漠河等
2022/04/29 数码科技