PHP CodeBase: 判断用户是否手机访问
转载地址:http://www.nowamagic.net/librarys/veda/cate/PHP
随着移动设备的普及,网站也会迎来越来越多移动设备的访问。用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。
自定义的函数如下:
01
|
$agent = check_wap();
|
02
|
if ( $agent )
|
03
|
{
|
04
|
header( 'Location: http://www.nowamagic.net' );
|
05
|
exit ;
|
06
|
}
|
07
|
08
|
// check if wap
|
09
|
function check_wap(){
|
10
|
// 先检查是否为wap代理,准确度高
|
11
|
if ( stristr ( $_SERVER [ 'HTTP_VIA' ], "wap" )){
|
12
|
return true;
|
13
|
}
|
14
|
// 检查浏览器是否接受 WML.
|
15
|
elseif ( strpos ( strtoupper ( $_SERVER [ 'HTTP_ACCEPT' ]), "VND.WAP.WML" ) > 0){
|
16
|
return true;
|
17
|
}
|
18
|
//检查USER_AGENT
|
19
|
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|ppc;|smartphone|sonyericsson|sqh|spv|symbian|treo|up.browser|up.link|vodafone|windows ce|xda |xda_)/i' , $_SERVER [ 'HTTP_USER_AGENT' ])){
|
20
|
return true;
|
21
|
}
|
22
|
else {
|
23
|
return false;
|
24
|
}
|
25
|
}
|
再来一个从PHP框架剥离的判断是否为手机移动终端的函数:
01
|
function is_mobile_request()
|
02
|
{
|
03
|
$_SERVER [ 'ALL_HTTP' ] = isset( $_SERVER [ 'ALL_HTTP' ]) ? $_SERVER [ 'ALL_HTTP' ] : '' ;
|
04
|
$mobile_browser = '0' ;
|
05
|
if (preg_match( '/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i' , strtolower ( $_SERVER [ 'HTTP_USER_AGENT' ])))
|
06
|
$mobile_browser ++;
|
07
|
if ((isset( $_SERVER [ 'HTTP_ACCEPT' ])) and ( strpos ( strtolower ( $_SERVER [ 'HTTP_ACCEPT' ]), 'application/vnd.wap.xhtml+xml' ) !== false))
|
08
|
$mobile_browser ++;
|
09
|
if (isset( $_SERVER [ 'HTTP_X_WAP_PROFILE' ]))
|
10
|
$mobile_browser ++;
|
11
|
if (isset( $_SERVER [ 'HTTP_PROFILE' ]))
|
12
|
$mobile_browser ++;
|
13
|
$mobile_ua = strtolower ( substr ( $_SERVER [ 'HTTP_USER_AGENT' ],0,4));
|
14
|
$mobile_agents = array (
|
15
|
'w3c ' , 'acs-' , 'alav' , 'alca' , 'amoi' , 'audi' , 'avan' , 'benq' , 'bird' , 'blac' ,
|
16
|
'blaz' , 'brew' , 'cell' , 'cldc' , 'cmd-' , 'dang' , 'doco' , 'eric' , 'hipt' , 'inno' ,
|
17
|
'ipaq' , 'java' , 'jigs' , 'kddi' , 'keji' , 'leno' , 'lg-c' , 'lg-d' , 'lg-g' , 'lge-' ,
|
18
|
'maui' , 'maxo' , 'midp' , 'mits' , 'mmef' , 'mobi' , 'mot-' , 'moto' , 'mwbp' , 'nec-' ,
|
19
|
'newt' , 'noki' , 'oper' , 'palm' , 'pana' , 'pant' , 'phil' , 'play' , 'port' , 'prox' ,
|
20
|
'qwap' , 'sage' , 'sams' , 'sany' , 'sch-' , 'sec-' , 'send' , 'seri' , 'sgh-' , 'shar' ,
|
21
|
'sie-' , 'siem' , 'smal' , 'smar' , 'sony' , 'sph-' , 'symb' , 't-mo' , 'teli' , 'tim-' ,
|
22
|
'tosh' , 'tsm-' , 'upg1' , 'upsi' , 'vk-v' , 'voda' , 'wap-' , 'wapa' , 'wapi' , 'wapp' ,
|
23
|
'wapr' , 'webc' , 'winw' , 'winw' , 'xda' , 'xda-'
|
24
|
);
|
25
|
if (in_array( $mobile_ua , $mobile_agents ))
|
26
|
$mobile_browser ++;
|
27
|
if ( strpos ( strtolower ( $_SERVER [ 'ALL_HTTP' ]), 'operamini' ) !== false)
|
28
|
$mobile_browser ++;
|
29
|
// Pre-final check to reset everything if the user is on Windows
|
30
|
if ( strpos ( strtolower ( $_SERVER [ 'HTTP_USER_AGENT' ]), 'windows' ) !== false)
|
31
|
$mobile_browser =0;
|
32
|
// But WP7 is also Windows, with a slightly different characteristic
|
33
|
if ( strpos ( strtolower ( $_SERVER [ 'HTTP_USER_AGENT' ]), 'windows phone' ) !== false)
|
34
|
$mobile_browser ++;
|
35
|
if ( $mobile_browser >0)
|
36
|
return true;
|
37
|
else
|
38
|
return false;
|
39
|
}
|
PHP CodeBase: 判断用户是否手机访问相关推荐
- .NET C# 判断用户是手机访问还是电脑访问
遇到的问题是这样的,所做的网站分电脑版和手机版,两个版本支付宝支付设置的回调地址为同一个,在回调地址程序里判断支付成功时给了一个成功页面,手机版跟电脑版的成功页面不是同一个页面,是不兼容的,此时要判断 ...
- 网页php如何判断登录手机串号_php判断用户是否手机访问代码
随着移动设备的普及,网站也会迎来越来越多移动设备的访问.用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.这里就介绍 ...
- 判断用户用手机访问还是用电脑访问网页
C# 判断用户用手机访问还是用电脑访问网页 string osPat = "mozilla|m3gate|winwap|openwave|Windows NT|Windows 3.1|95| ...
- HTML判断客户端,JS代码判断客户端是手机访问还是PC电脑访问
这篇文章主要为大家详细介绍了JS代码判断客户端是手机访问还是PC电脑访问,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,有需要的朋友可以收藏方便以后借鉴. 前面给大家讲了<PHP判断判访问设 ...
- php怎么判断是否手机网站,php,js判断网站是不是手机访问
Warning: strncmp() has been disabled for security reasons in /www/web/default/blog/public_html/wp-in ...
- js判断是否是手机访问网页
原理:原理有两个,第一:通过游览器(browser)判断是否是手机:第二:通过访问终端判断是否是手机(userAgent):但是通常考虑到兼容性,需要这两种原理同时使用:具体的实现如下: functi ...
- 判断是否是手机访问及手机操作系统
我们现在做的项目,移动端和PC端网站访问的是同一套接口,那么如何在接口中区分是手机访问还是PC短访问呢? 核心思想:根据请求头(request header)来判断,如何请求没有header或伪造us ...
- php判断电脑还是手机浏览器打开网页,php判断是手机还是电脑访问网站
php判断是手机还是电脑访问网站的方法:首先创建一个PHP示例文件:然后定义一个"is_mobile"方法:接着实现判断检测访问的浏览器为哪一个浏览器的功能:最后在浏览器执行该文件 ...
- php手机访问地址吗,如何用php判断电脑访问还是手机访问
手机上网用户数量越来越大,如今各网站都推出了手机网站,电脑用户访问时直接访问电脑版网页,当用户通过手机访问网站时则跳自动跳转到手机版网页,下面给大家分享一段php中判断电脑访问还是手机访问的代码:&l ...
最新文章
- CUDA 8混合精度编程
- MFC全局函数开局——AfxGetApp解剖
- 基于requests模块的cookie,session和线程池爬取
- dynamic programming for knapsack with repeated items algorithm demonstration
- Redis---概述
- STM32之Systick(系统时钟滴答定时器)
- 诗与远方:无题(十)- 小熊夜游走廊记
- jQuery 自定义事件的学习笔记
- OpenCV-绘制简易直方图DrawHistImg
- matlab双峰模型,为什么用MATLAB画的高斯双峰曲线不能永双高斯函数拟合?
- Windows server 2012 R2网卡驱动安装经历
- android 音乐播放器评测,Android平台四大音乐播放器对比评测
- html5 flash播发器,什么时候HTML5视频应该回归到Flash播放器?
- 人工智能之启发式搜索算法
- C,java,Python,这些名字背后的江湖!
- 网络安全知识竞赛(国家信息安全水平考试NISP)模拟题1
- 搬家后计算机总重启,电脑无故重启是这一个月来的事了,我刚刚搬家电脑搬到新家那用了没几 爱问知识人...
- 第三周项目 侦察队委派任务
- 企小码会话存档使用教程——删人提醒
- 数据结构—查找(第八章)
热门文章
- 十分钟轻松搞懂CSS的五大定位方式!(建议收藏)
- Java中 == 和 equals 的区别是什么?
- 触发父组件变量_Vue组件之间的传值
- java多线程为啥一直用的一个线程_一个Java多线程的问题,颠覆了我多年的认知!...
- LinkedList源码阅读笔记(1.8)
- 【303】C# 复制窗体 修改名称
- 新网域名查询和注册API接口类 源码
- 安卓程序员都懂:如何用Espresso对UI界面测试?
- Lua基础---lua字符串库函数详解,实例及正则表达式
- Windows10 bash 巨硬和Canonical Ltd.的PY交易