ThinkPHP中判断是手机端还是电脑端访问的方法

php网站判断用户是否是手机访问的方法
转载 & & 投稿:zxhpj
PHP网站判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。
随着移动设备的普及,网站也会迎来越来越多移动设备的访问。用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。
自定义的函数如下:
$agent = check_wap();
if( $agent )
header('Location: http://www.jb51.net');
// check if wap
function check_wap(){
// 先检查是否为wap代理,准确度高
if(stristr($_SERVER['HTTP_VIA'],"wap")){
// 检查浏览器是否接受 WML.
elseif(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") & 0){
//检查USER_AGENT
elseif(preg_match('/(blackberry|configuration\/cldc|hp |hp-|htc |htc_|htc-|iemobile|kindle|midp|mmp|motorola|mobile|nokia|opera mini|opera |Googlebot-Mobile|YahooSeeker\/M1A1-R2D2|android|iphone|ipod|mobi|palm|palmos|pocket|portalmmm||smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i', $_SERVER['HTTP_USER_AGENT'])){
再来一个从PHP框架剥离的判断是否为手机移动终端的函数:(经过测试,很全面,推荐使用)
function is_mobile_request()
$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
$mobile_browser = '0';
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
$mobile_browser++;
if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))
$mobile_browser++;
if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
$mobile_browser++;
if(isset($_SERVER['HTTP_PROFILE']))
$mobile_browser++;
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-'
if(in_array($mobile_ua, $mobile_agents))
$mobile_browser++;
if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)
$mobile_browser++;
// Pre-final check to reset everything if the user is on Windows
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
$mobile_browser=0;
// But WP7 is also Windows, with a slightly different characteristic
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)
$mobile_browser++;
if($mobile_browser&0)
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具thinkphp判断访客为手机端或PC端的方法
转载 & & 投稿:shichen2014
这篇文章主要介绍了thinkphp判断访客为手机端或PC端的方法,通过获取用户$_SERVER['HTTP_USER_AGENT']信息后,再针对数组的遍历与匹配来判断访客类型,是非常实用的技巧,需要的朋友可以参考下
本文实例讲述了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 =&
&&& foreach ($mobile_agents as $device) {//这里把值遍历一遍,用于查找是否有上述字符串出现过&
&&&&&& if (stristr($user_agent, $device)) { //stristr 查找访客端信息是否在上述数组中,不存在即为PC端。&
&&&&&&&&&&& $is_mobile =&
&&&&&&&&&&&&
&&&&&&& }&
&&& return $is_&
define('THINK_PATH','./CORE/');&
if(is_mobile()){ //跳转至wap分组&
&echo '您是手机端访问的,已跳转到手机端';&
&&&& define('APP_NAME','mobi');&
&&& define('APP_PATH','./mobi/');&
&echo '你是PC端访问的';&
&&&& define('APP_NAME','Home');&
&&& define('APP_PATH','./Home/');&&&&&&&&&&
&define('APP_DEBUG', false);&
require THINK_PATH.'core.php';
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具如何判断网站是用手机端还是PC端访问的_百度知道
如何判断网站是用手机端还是PC端访问的
我有更好的答案
现在要分析网站来源主要是借助第三方统计软件,要看来源是手机端还是电脑端,可以安装百度商桥来进行来源统计与分析,具体方法如下:百度搜百度商桥,进官网下载百度商桥客户端;安装百度商桥客户端,注册百度账号(有账号可以忽略这一步);登录客户端后,点开系统设置;在&系统设置&的网站管理,添加自己的站点,站点可以是电脑端和移动端;& 5.添加站点后,点击&代码管理&,根据安装要求,将代码安装到自己的网站;6.检测代码安装是否正确,正确的绑定商桥代码后,在商桥主界面可以看到每一个访客的信息,十分方便;注意事项:代码安装的位置要正确,检测无误后方可绑定网站。
采纳率:25%
不需要,浏览器中可以设置UA(标识)可切换PC端,安卓端,苹果端等
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。thinkphp如何来判断访客为手机端或是PC端
近日准备给自己的网站做一个小升级,让用户在手机二维码扫描的时候显示适合手机端来展示的模版【我用的是Think3.0】,代码是参考别人的
我先说下大概的一个思路 简单两步:
统版本号和以及它的版本号(贴出的代码中数组中只有移动端信息,因此后面只需判断是否为数组中的某一个值即可).
根据数组中的值来判断访客是否为手机、pad、之类的移动端,如果是的话就规定项目路径、名称为你的手机端模版如 define('APP_NAME','mobi');
define('APP_PATH','./mobi/');
下面代码的话我尽量加上注释:
//判断是否属手机 //代码看上去很多,其实就是数组里面显得多而乱,不要被表面现象所吓倒哦!
functionis_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&,&wigbrowser&,&wii&,&windowsce&,&wireless&,&xda&,&xde&,&zte&);
$is_mobile= foreach($mobile_agentsas$device){//这里把值遍历一遍,用于查找是否有上述字符串出现过
if(stristr($user_agent,$device)){//stristr查找访客端信息是否在上述数组中,不存在即为PC端。 $is_mobile=
} return$is_
} 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);
requireTHINK_PATH.'core.php';ThinkPHP中判断是手机端还是电脑端访问的方法_百度知道
ThinkPHP中判断是手机端还是电脑端访问的方法
我有更好的答案
判断是否是手机端还是电脑端function isMobile(){// 如果有Http_X_WAP_PROFILE则一定是移动设备if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){}
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信