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 相关文章推荐
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
深入理解curl类,可用于模拟get,post和curl下载
Jun 08 PHP
php 获取页面中指定内容的实现类
Jan 23 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
ThinkPHP中的系统常量和预定义常量集合
Jul 01 PHP
PHP获取当前页面URL函数实例
Oct 22 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
Apr 17 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
php反射类ReflectionClass用法分析
May 12 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
Sep 30 PHP
php输出含有“#”字符串的方法
Jan 18 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中使用CURL伪造来路抓取页面或文件
2011/05/04 PHP
简单实用的.net DataTable导出Execl
2013/10/28 PHP
两个php日期控制类实例
2014/12/09 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
新闻内页-JS分页
2006/06/07 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
Extjs中ComboBoxTree实现的下拉框树效果(自写)
2013/05/28 Javascript
jQuery中的pushStack实现原理和应用实例
2015/02/03 Javascript
详解AngularJS中$http缓存以及处理多个$http请求的方法
2016/02/06 Javascript
js 获取今天以及过去日期
2017/04/11 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
Node.js简单入门前传
2017/08/21 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
JS Input里添加小图标的两种方法
2017/11/11 Javascript
vue基于mint-ui实现城市选择三级联动
2020/06/30 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
PyTorch的SoftMax交叉熵损失和梯度用法
2020/01/15 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
2020/02/15 Python
python实现AdaBoost算法的示例
2020/10/03 Python
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
迪拜航空官方网站:flydubai
2017/04/20 全球购物
俄罗斯有趣和原创礼物网上商店:MagicMag
2019/08/01 全球购物
心理健康心得体会
2014/01/02 职场文书
安全教育月活动总结
2014/05/05 职场文书
个人批评与自我批评
2014/10/15 职场文书
入党介绍人意见2015
2015/06/01 职场文书
golang正则之命名分组方式
2021/04/25 Golang
python tkinter Entry控件的焦点移动操作
2021/05/22 Python