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如何编写易读的代码
Jul 10 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
Linux环境下搭建php开发环境的操作步骤
Jun 17 PHP
PHP中的命名空间相关概念浅析
Jan 22 PHP
Zend Framework教程之Zend_Db_Table用法详解
Mar 21 PHP
ThinkPHP中session函数详解
Sep 14 PHP
PHP获取访问页面HTTP状态码的实现代码
Nov 03 PHP
php 判断页面或图片是否经过gzip压缩的方法
Apr 05 PHP
PHP SFTP实现上传下载功能
Jul 26 PHP
php实现的后台表格分页功能示例
Oct 23 PHP
ThinkPHP 3使用OSS的方法
Jul 19 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
8个必备的PHP功能实例代码
2013/10/27 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
jQuery .tmpl() 用法示例介绍
2014/08/21 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
JavaScript检查数字是否为整数或浮点数的方法
2015/06/09 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
JS前端加密算法示例
2016/12/22 Javascript
vue中计算属性(computed)、methods和watched之间的区别
2017/07/27 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
JS监听事件的叠加和移除功能
2018/11/19 Javascript
微信小程序学习笔记之本地数据缓存功能详解
2019/03/29 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
python并发编程之线程实例解析
2017/12/27 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
2018/01/15 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
python常用运维脚本实例小结
2020/02/14 Python
在django中使用post方法时,需要增加csrftoken的例子
2020/03/13 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
Pytorch之Tensor和Numpy之间的转换的实现方法
2020/09/03 Python
python如何利用paramiko执行服务器命令
2020/11/07 Python
JD Sports芬兰:英国领先的运动鞋和运动服饰零售商
2018/11/16 全球购物
财务会计毕业生自荐信
2013/11/02 职场文书
商场中秋节广播稿
2014/01/17 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
土木工程专业推荐信
2014/02/19 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
社区护士演讲稿
2014/08/27 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书