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 高性能书写
Dec 11 PHP
php中计算未知长度的字符串哪个字符出现的次数最多的代码
Aug 14 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
php根据生日计算年龄的方法
Jul 13 PHP
PHP结合jQuery实现找回密码
Jul 22 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
php数组分页实现方法
Apr 30 PHP
php实现当前页面点击下载文件的实例代码
Nov 16 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
laravel5.2表单验证,并显示错误信息的实例
Sep 29 PHP
Laravel框架实现抢红包功能示例
Oct 31 PHP
PHP Trait功能与用法实例分析
Jun 03 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&java(一)
2006/10/09 PHP
简单的用PHP编写的导航条程序
2006/10/09 PHP
php中的抽象方法和抽象类
2017/02/14 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
lnmp安装多版本PHP共存的方法详解
2018/08/02 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
javascript Zifa FormValid 0.1表单验证 代码打包下载
2007/06/08 Javascript
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
2016/05/03 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
Vue实现购物车功能
2017/04/27 Javascript
vue实现图书管理demo详解
2017/10/17 Javascript
JS插件clipboard.js实现一键复制粘贴功能
2020/12/04 Javascript
深入理解js A*寻路算法原理与具体实现过程
2018/12/13 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
vue+Element-ui实现分页效果
2020/11/15 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python中的迭代器与生成器高级用法解析
2016/06/28 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
python使用matplotlib:subplot绘制多个子图的示例
2020/09/24 Python
RetroStage德国:复古服装
2019/02/03 全球购物
品管员岗位职责
2013/11/10 职场文书
书法培训心得体会
2014/01/05 职场文书
办公室秘书自我鉴定
2014/01/18 职场文书
倡议书格式
2014/04/14 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
学术会议邀请函
2015/01/30 职场文书
公务员处分决定书
2015/06/25 职场文书
2016党员三严三实心得体会
2016/01/15 职场文书
详解Laravel制作API接口
2021/05/31 PHP