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 带逗号千位符数字的处理方法
Jan 10 PHP
php daddslashes()和 saddslashes()有哪些区别分析
Oct 26 PHP
PHP Session 变量的使用方法详解与实例代码
Sep 11 PHP
phpmailer中文乱码问题的解决方法
Apr 22 PHP
php命令行用法入门实例教程
Oct 27 PHP
thinkphp浏览历史功能实现方法
Oct 29 PHP
Yii框架在页面输出执行sql语句以方便调试的实现方法
Dec 24 PHP
详解PHP中的null合并运算符
Dec 30 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
php生出随机字符串
Jul 06 PHP
php的对象传值与引用传值代码实例讲解
Feb 26 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 类型转换函数intval
2009/06/20 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
php常用的url处理函数总结
2014/11/19 PHP
PHP如何将log信息写入服务器中的log文件
2015/07/29 PHP
php判断手机浏览还是web浏览,并执行相应的动作简单实例
2016/07/28 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
jquery中的on方法使用介绍
2013/12/29 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
js实现3D图片环展示效果
2017/03/09 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
JavaScript中的几种继承方法示例
2020/12/06 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
Python人脸识别第三方库face_recognition接口说明文档
2019/05/03 Python
python实现两个字典合并,两个list合并
2019/12/02 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Ubuntu中配置TensorFlow使用环境的方法
2020/04/21 Python
python和js交互调用的方法
2020/06/23 Python
Python浮点型(float)运算结果不正确的解决方案
2020/09/22 Python
浅析CSS3中鲜为人知的属性:-webkit-tap-highlight-color
2017/01/12 HTML / CSS
全球工业:Global Industrial
2020/02/01 全球购物
中海讯通笔试题
2015/09/15 面试题
Java语言的优势
2015/01/10 面试题
自考毕业自我鉴定范文
2013/10/27 职场文书
企业行政文员岗位职责
2013/12/03 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
python3 删除所有自定义变量的操作
2021/04/08 Python
Python数据分析之绘图和可视化详解
2021/06/02 Python