随着移动设备的普及,网站也会迎来越来越多移动设备的访问。用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面。这里就介绍一下,如何判断用户是否用手机访问。
自定义的函数如下:
11 |
if(stristr($_SERVER['HTTP_VIA'],"wap")){ |
15 |
elseif(strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0){ |
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'])){ |
再来一个从PHP框架剥离的判断是否为手机移动终端的函数:
01 |
function is_mobile_request() |
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']))) |
07 |
if((isset($_SERVER['HTTP_ACCEPT'])) and(strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false)) |
09 |
if(isset($_SERVER['HTTP_X_WAP_PROFILE'])) |
11 |
if(isset($_SERVER['HTTP_PROFILE'])) |
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-' |
25 |
if(in_array($mobile_ua, $mobile_agents)) |
27 |
if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false) |
29 |
// Pre-final check to reset everything if the user is on Windows |
30 |
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false) |
32 |
// But WP7 is also Windows, with a slightly different characteristic |
33 |
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false) |
- PHP CodeBase: 判断用户是否手机访问
随着移动设备的普及,网站也会迎来越来越多移动设备的访问.用适应PC的页面,很多时候对手机用户不友好,那么有些时候,我们需要判断用户是否用手机访问,如果是手机的话,就跳转到指定的手机友好页面.这里就介绍 ...
- C#判断用户是手机访问还是PC访问
今天在做一个wap网站时,需要限制PC用户访问.网上找了很多资料,效果都不怎么理想.其实原理就是根据HTTP_USER_AGENT判断检查用户在用什么浏览器,再根据业务做相应的逻辑处理. 代码如下: ...
- PHP判断用户是否手机访问
自定义的函数如下: $agent = check_wap(); if( $agent ) { header('Location: http://www.nowamagic.net'); exit; } ...
- PHP 判断用户是否手机访问
$agent = check_wap(); if( $agent ) { header('Location: http://www.lewanau.com'); exit; } // check if ...
- 判断用户是pc访问还是手机访问
前天因为手机页面中点击无法链接53客服,就研究了下怎样通过js判断,用户是拿手机(ipad)访问,还是pc端访问, 如果是手机访问的话只需把链接通过attr修改a的链接地址~ <a class= ...
- onethink判断是否是手机访问?
第一步:找到:Application / Common / Common / function.php 添加判断是否是手机访问的代码: /** * 判断当前访问的用户是 PC端 还是 手机端 返回tr ...
- js判断是否为手机访问
JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另一种是通过分析浏览器的userAgent属性来判断的.在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本 ...
- php 判断是否 是手机访问
//判断是否属手机 function is_mobile() { $user_agent = $_SERVER['HTTP_USER_AGENT']; $mobile_agents = Array(& ...
- php判断是否使用手机访问
直接上代码 /** * 检测是否使用手机访问 * @access public * @return bool */ public function isMobile() { if (isset($_S ...
随机推荐
- Windows7 IIS7 无法启动计算机上的服务W3SVC如何修复
错误提示 启动iis7管理服务器提示:无法启动计算机上的服务W3SVC 启动Windows Process Activation Service服务,报错:6801 指定资源管理器中的事务支持未启动或 ...
- temp 临时文件
放假了,放假了:http://blog.csdn.net/skywalker_only/article/details/17076851 nucht2.2.1爆出如下异常: Exception in ...
- BZOJ 3575 道路堵塞
Description A国有N座城市,依次标为1到N.同时,在这N座城市间有M条单向道路,每条道路的长度是一个正整数.现在,A国交通部指定了一条从城市1到城市N的路径,并且保证这条路径的长度是所有从 ...
- Kernel PCA 原理和演示
Kernel PCA 原理和演示 主成份(Principal Component Analysis)分析是降维(Dimension Reduction)的重要手段.每一个主成分都是数据在某一个方向上的 ...
- [C#] - 注入DLL
原文:http://xyzlht.blog.163.com/blog/static/69301417200882834211787/ ) { MessageBox.Show("创建远程线程失 ...
- Linux Shell编程(7)——变量赋值
=赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试.注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符.例子:简单的变量赋值 #!/b ...
- CMOS Sensor的调试经验分享
转自:http://bbs.52rd.com/forum.php?mod=viewthread&tid=276351 CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一 ...
- 在ASP.Net MVC 中,如何在Global.asax中配置一个指向Area内部的默认Route
ASP.Net MVC 中配置Route的时候可以设置一个默认的Route. 比如我要在输入http://localhost的时候默认进入http://localhost/home/index.可以在 ...
- OSGI在Eclipse中执行-console出错的问题
在Eclipse中安装osgi插件后,执行出现异常:
- Elasticsarch及插件安装
Elasticsarch及插件安装 一.环境介绍与安装准备 1.环境说明 OS为Centos 6.5,elasticsearch-1.1.X.tar.gz, 注:mongo river ...