PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码


Posted in PHP onFebruary 14, 2013

有时候很实用在一些场合,留住备用吧

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)   
        return true;   
      else  
        return false;   
    }

文章来源:http://yi1.com.cn/posts/781

php 根据HTTP_USER_AGENT 判断用户浏览器类型

function browsers(){
   global $HTTP_USER_AGENT ;
   if (isset($HTTP_USER_AGENT)){
    $sAgent = $HTTP_USER_AGENT;
   }else{
    $sAgent = $_SERVER['HTTP_USER_AGENT'];
   }
   if (strpos($sAgent,'MSIE') !== false && strpos($sAgent,'mac') === false && strpos($sAgent,'Opera') === false){
    $iVersion = (float)substr($sAgent,strpos($sAgent,'MSIE') + 5,3);
    return ($iVersion >= 5.5) ;
   }else if (strpos($sAgent,'Gecko/') !== false){
    $iVersion = (int)substr($sAgent,strpos($sAgent,'Gecko/') + 6,8);
    return ($iVersion >= 20030210) ;
   }else{
    return false;
   }
  }
PHP 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
PHP个人网站架设连环讲(一)
Oct 09 PHP
PHP 利用AJAX获取网页并输出的实现代码(Zjmainstay)
Aug 31 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
PHPThumb图片处理实例
May 03 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
PHP pear安装配置教程
May 14 PHP
php封装的单文件(图片)上传类完整实例
Oct 18 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
PHP框架Laravel中使用UUID实现数据分表操作示例
May 30 PHP
PHP-redis中文文档介绍
Feb 07 #PHP
php中使用redis队列操作实例代码
Feb 07 #PHP
无需重新编译php加入ftp扩展的解决方法
Feb 07 #PHP
php实现utf-8和GB2312编码相互转换函数代码
Feb 07 #PHP
在smarty中调用php内置函数的方法
Feb 07 #PHP
php字符串分割函数explode的实例代码
Feb 07 #PHP
php中使用preg_replace函数匹配图片并加上链接的方法
Feb 06 #PHP
You might like
基于PHP 面向对象之成员方法详解
2013/05/04 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php 浮点数比较方法详解
2017/05/05 PHP
详解php中的implements 使用
2017/06/13 PHP
js 纯数字不重复排列的另类方法
2010/07/17 Javascript
JavaScript 小型打飞机游戏实现原理说明
2010/10/28 Javascript
JS+ACTIVEX实现网页选择本地目录路径对话框
2013/03/18 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
javascript中获取class的简单实现
2016/07/12 Javascript
vue2中使用less简易教程
2018/03/27 Javascript
微信小程序首页的分类功能和搜索功能的实现思路及代码详解
2018/09/11 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
python操作列表的函数使用代码详解
2017/12/28 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
python re库的正则表达式入门学习教程
2019/03/08 Python
基于python if 判断选择结构的实例详解
2019/05/06 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
浅析HTML5页面元素及属性
2021/01/20 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
维多利亚的秘密阿联酋官网:Victoria’s Secret阿联酋
2019/12/07 全球购物
可以使用抽象函数重写基类中的虚函数吗
2013/06/02 面试题
个人四风问题整改措施思想汇报
2014/10/04 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
垂直极限观后感
2015/06/08 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
element tree树形组件回显数据问题解决
2022/08/14 Javascript