/**
* 判断浏览器名称和版本
*/
function get_user_browser()
{
if (empty($_SERVER['HTTP_USER_AGENT']))
{
return '';
} $agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
$browser_ver = ''; if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs))
{
$browser = 'Internet Explorer';
$browser_ver = $regs[1];
}
elseif (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs))
{
$browser = 'FireFox';
$browser_ver = $regs[1];
}
elseif (preg_match('/Maxthon/i', $agent, $regs))
{
$browser = '(Internet Explorer ' .$browser_ver. ') Maxthon';
$browser_ver = '';
}
elseif (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs))
{
$browser = 'Opera';
$browser_ver = $regs[1];
}
elseif (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs))
{
$browser = 'OmniWeb';
$browser_ver = $regs[2];
}
elseif (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Netscape';
$browser_ver = $regs[2];
}
elseif (preg_match('/safari\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Safari';
$browser_ver = $regs[1];
}
elseif (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs))
{
$browser = '(Internet Explorer ' .$browser_ver. ') NetCaptor';
$browser_ver = $regs[1];
}
elseif (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs))
{
$browser = 'Lynx';
$browser_ver = $regs[1];
} if (!empty($browser))
{
return addslashes($browser . ' ' . $browser_ver);
}
else
{
return 'Unknow browser';
}
}

最新文章

  1. Android权限管理之Permission权限机制及使用
  2. html5存储方式localstorage和sessionStorage
  3. 自定义属性的时候,尽量不要使用value这个命名
  4. hashMap_使用
  5. 将spring cloud打包docker镜像
  6. Mego开发文档 - 基础查询
  7. concurrent.futures进行并发编程
  8. C++标准库之右值引用相关:引用折叠
  9. Java 状态模式
  10. axios、ajax、fetch三者的区别
  11. php计算程序运行时间
  12. nginx常用的超时配置说明
  13. 在 Laravel 5 中集成七牛云存储实现云存储功能
  14. 编程开发之--java多线程学习总结(5)
  15. erlang-sunface的博客地址
  16. go包管理工具glide使用方法
  17. 删除Windows服务
  18. 1.2(Mybatis学习笔记)Mybatis核心配置
  19. android studio - 隐藏编辑器上面的导航条
  20. 【转】 Pro Android学习笔记(八五):了解Package(4):lib项目

热门文章

  1. 如何在 Java 中实现无向图
  2. kali添加开机自启[亲测有效]
  3. SpringMVC获取请求参数-POJO类型参数
  4. 巧用 background-clip 实现超强的文字动效
  5. php怎么向上取整以5为界
  6. C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6
  7. FastDFS分布式的文件系统从小白入门到企业实践打怪之路系列笔记 【运维实践】
  8. 图片叠加科幻切换 -- css
  9. python基础练习题(题目 判断101-200之间有多少个素数,并输出所有素数。)
  10. windwos 下编译 qsqlibase 驱动(firebird 和 interbase)