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应用技巧
Mar 27 PHP
php页面跳转代码 输入网址跳转到你定义的页面
Mar 28 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
Jun 13 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
PHP实现的浏览器检查类
Apr 11 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
Laravel日志用法详解
Oct 09 PHP
ThinkPHP3.2框架自定义配置和加载用法示例
Jun 14 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 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新闻发布系统教程
2014/05/09 PHP
PHP实现对站点内容外部链接的过滤方法
2014/09/10 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
jQuery中:input选择器用法实例
2015/01/03 Javascript
js带点自动图片轮播幻灯片特效代码分享
2015/09/07 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
python对json的相关操作实例详解
2017/01/04 Python
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
如何使用Python 打印各种三角形
2019/06/28 Python
解决pycharm 工具栏Tool中找不到Run manager.py Task的问题
2019/07/01 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
Python进程池Pool应用实例分析
2019/11/27 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
一款基于css3的列表toggle特效实例教程
2015/01/04 HTML / CSS
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
家长会主持词
2014/03/26 职场文书
班主任对学生的评语
2014/04/26 职场文书
音乐教师求职信
2014/06/28 职场文书
《中国梦我的梦》小学生演讲稿
2014/08/20 职场文书
大学军训自我鉴定大全
2014/09/18 职场文书
党员个人自我评价
2015/03/03 职场文书
施工现场安全管理制度
2015/08/05 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang