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 相关文章推荐
一个高ai的分页函数和一个url函数
Oct 09 PHP
用PHP函数解决SQL injection
Dec 09 PHP
mysql 搜索之简单应用
Apr 27 PHP
PHP 异步执行方法,模拟多线程的应用分析
Jun 03 PHP
如何取得中文字符串中出现次数最多的子串
Aug 08 PHP
php中eval函数的危害与正确禁用方法
Jun 30 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
Apr 17 PHP
Yii2.0高级框架数据库增删改查的一些操作
Nov 16 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
Laravel 实现密码重置功能
Feb 23 PHP
php接口实现拖拽排序功能
Apr 23 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设计模式 Visitor 访问者模式
2011/06/28 PHP
php curl选项列表(超详细)
2013/07/01 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php时间函数用法分析
2016/05/28 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
原生javaScript做得动态表格(注释写的很清楚)
2013/12/29 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
高性能JavaScript 重排与重绘(2)
2015/08/11 Javascript
[原创]JQuery 在表单提交之前修改 提交的值
2016/04/14 Javascript
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
详解AngularJs中$sce与$sceDelegate上下文转义服务
2016/09/21 Javascript
令按钮悬浮在(手机)页面底部的实现方法
2017/05/02 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
js 下拉菜单点击旁边收起实现(踩坑记)
2019/09/29 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
Python编程中time模块的一些关键用法解析
2016/01/19 Python
python开发之list操作实例分析
2016/02/22 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
携程旅行网:中国领先的在线旅行服务公司
2017/02/17 全球购物
马来西亚航空官方网站:Malaysia Airlines
2017/07/28 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
大学生预备党员自我评价分享
2013/11/16 职场文书
致跳远、跳高运动员广播稿
2014/01/09 职场文书
小学生打架检讨书
2014/01/26 职场文书
卫生巾广告词
2014/03/18 职场文书
离婚协议书的书写要求
2014/09/17 职场文书
运动会广播稿200字(10篇)
2014/10/12 职场文书
用JS创建一个录屏功能
2021/11/11 Javascript
Python进程间的通信之语法学习
2022/04/11 Python