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如何调用webservice应用介绍
Nov 24 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
PHP分页类集锦
Nov 18 PHP
php防止恶意刷新与刷票的方法
Nov 21 PHP
yii实现图片上传及缩略图生成的方法
Dec 04 PHP
PHP生成唯一订单号
Jul 05 PHP
初识通用数据库操作类――前端easyui-datagrid,form(php)
Jul 31 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
Dec 18 PHP
如何使用php等比例缩放图片
Oct 12 PHP
PHP Post获取不到非表单数据的问题解决办法
Feb 27 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使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
Codeigniter实现发送带附件的邮件
2015/03/19 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JS复制到剪贴板示例代码
2013/10/30 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
2015/04/06 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
js Date()日期函数浏览器兼容问题解决方法
2017/09/12 Javascript
原生js封装运动框架的示例讲解
2017/10/01 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
详解如何使用webpack打包多页jquery项目
2019/02/01 jQuery
[04:29]2014DOTA2国际邀请赛 主赛事第三日TOPPLAY
2014/07/21 DOTA
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
Python魔法方法详解
2019/02/13 Python
Python爬虫 批量爬取下载抖音视频代码实例
2019/08/16 Python
详解如何用python实现一个简单下载器的服务端和客户端
2019/10/28 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
python实现UDP协议下的文件传输
2020/03/20 Python
完美解决IE8下不兼容rgba()的问题
2017/03/31 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
最新的小工具和卓越的产品设计:Oh That Tech!
2019/08/07 全球购物
人事专员岗位职责
2013/11/20 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
报效祖国演讲稿
2014/09/15 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
2015感人爱情寄语
2015/02/26 职场文书
有关浪费资源的建议书
2015/09/14 职场文书
离婚协议书范本(2016最新版)
2016/03/18 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
HttpClient实现文件上传功能
2022/08/14 Java/Android