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 相关文章推荐
PHP学习之PHP运算符
Oct 09 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
May 19 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
Apr 25 PHP
很让人受教的 提高php代码质量36计
Sep 05 PHP
解析:使用php mongodb扩展时 需要注意的事项
Jun 18 PHP
php实现文件下载代码分享
Aug 19 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
PHP错误和异常处理功能模块示例
Nov 12 PHP
PHP获取真实客户端的真实IP
Mar 07 PHP
php简单读取.vcf格式文件的方法示例
Sep 02 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 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
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
2007/04/12 PHP
PHP游戏编程25个脚本代码
2011/02/08 PHP
php中用date函数获取当前时间有误的解决办法
2013/08/02 PHP
关于PHP虚拟主机概念及如何选择稳定的PHP虚拟主机
2018/11/20 PHP
Javascript 面向对象特性
2009/12/28 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
Angular.js之作用域scope'@','=','&'实例详解
2017/02/28 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
[20:39]DOTA2-DPC中国联赛 正赛开幕式 1月18日
2021/03/11 DOTA
Python获取当前函数名称方法实例分享
2018/01/18 Python
django表单的Widgets使用详解
2019/07/22 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
HTML5在IE10、火狐下中文乱码问题的解决方法
2013/11/18 HTML / CSS
简单html5代码获取地理位置
2014/03/31 HTML / CSS
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
人力资源管理专业应届生求职信
2013/09/28 职场文书
五年级英语教学反思
2014/01/31 职场文书
保密协议书范本
2014/04/22 职场文书
小学语文课后反思精选
2014/04/25 职场文书
医生辞职信范文
2015/03/02 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
Python采集壁纸并实现炫轮播
2022/04/30 Python
Python代码实现双链表
2022/05/25 Python
python可视化分析绘制带趋势线的散点图和边缘直方图
2022/06/25 Python