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的分页功能
Mar 21 PHP
php日历[测试通过]
Mar 27 PHP
php mysql数据库操作类
Jun 04 PHP
基于curl数据采集之单页面采集函数get_html的使用
Apr 28 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
PHP调试函数和日志记录函数分享
Jan 31 PHP
php邮件发送的两种方式
Apr 28 PHP
PHP抓取淘宝商品的用户晒单评论+图片+搜索商品列表实例
Apr 14 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
Oct 30 PHP
有关PHP 中 config.m4 的探索
Aug 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
2017/11/20 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
Jquery Ajax.ashx 高效分页实现代码
2009/10/20 Javascript
如何让页面在打开时自动刷新一次让图片全部显示
2012/12/17 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
6款新颖的jQuery和CSS3进度条插件推荐
2013/03/05 Javascript
js控制多图左右滚动切换效果代码分享
2015/08/26 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
详解jQuery中关于Ajax的几个常用的函数
2017/07/17 jQuery
详解 vue.js用法和特性
2017/10/15 Javascript
js操作二进制数据方法
2018/03/03 Javascript
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
Python语法垃圾回收机制原理解析
2020/03/25 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python logging模块原理解析及应用
2020/08/13 Python
通过实例解析python and和or使用方法
2020/11/14 Python
python邮件中附加文字、html、图片、附件实现方法
2021/01/04 Python
快速实现一个简单的canvas迷宫游戏的示例
2018/07/04 HTML / CSS
欧缇丽美国官网:Caudalie美国
2016/12/31 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
YBF Beauty官网:美丽挚友,美国知名彩妆品牌
2020/11/22 全球购物
个人简历中的自我评价怎么写
2014/01/26 职场文书
学生生病请假条范文
2014/02/16 职场文书
高校优秀辅导员事迹材料
2014/05/07 职场文书
事业单位人员的自我评价范文
2014/09/21 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
sql server 累计求和实现代码
2022/02/28 SQL Server
解决redis批量删除key值的问题
2022/03/23 Redis