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初学者的8点有效建议
Nov 20 PHP
php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)
Dec 02 PHP
PHP超级全局变量数组小结
Oct 04 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
PHP实现Soap通讯的方法
Nov 03 PHP
PHP答题类应用接口实例
Feb 09 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
图文介绍PHP添加Redis模块及连接
Jul 28 PHP
PHP微信API接口类
Aug 22 PHP
Zend Framework入门教程之Zend_Mail用法示例
Dec 08 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
php 实现银联商务H5支付的示例代码
Oct 12 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中文件缓存转内存缓存的方法
2011/12/06 PHP
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP mail()函数使用及配置方法
2014/01/14 PHP
yii2的restful api路由实例详解
2019/05/14 PHP
laravel实现按月或天或小时统计mysql数据的方法
2019/10/09 PHP
Javascript注入技巧
2007/06/22 Javascript
学习ExtJS accordion布局
2009/10/08 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
jquery css实现流程进度条
2020/03/26 jQuery
Vue实现点击当前行变色
2020/12/14 Vue.js
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python smallseg分词用法实例分析
2015/05/28 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
六道php面试题附答案
2014/06/05 面试题
医院护士党的群众路线教育实践活动对照检查材料思想汇报
2014/10/04 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
英文感谢信范文
2015/01/21 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
导游词之上海豫园
2019/10/24 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
基于Python实现nc批量转tif格式
2022/08/14 Python