HTTP请求中的User-Agent 判断浏览器类型的各种方…
2018-06-22 05:33:06来源:未知 阅读 ()
当用户发送一个http请求的时候,浏览的的版本信息也包含在了http请求信息中:
如上图所示,请求 google plus 请求头就包含了用户的浏览器信息:
我们可以通过服务器端语言提供的相关API获取客户端的浏览器信息,进而对不同的浏览器返回不同的html文档,这样就可以针对现代浏览器返回绚丽的展示页面了。
navigator.userAgent
userAgent中提供给了浏览器将要发送给服务器端的http请求头中user-agent的信息。获取到这个信息之后我们可以通过正则匹配获取到浏览器和版本信息:
//获取浏览器发送的userAgent信息 var userAgentInfo = navigator.userAgent.toLowerCase(); document.write(userAgentInfo + '<br />'); /** * 输出运行的浏览器信息: * Chrome: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/27.0.1453.94 safari/537.36 * IE10: mozilla/5.0 (windows nt 6.1; wow64) applewebkit/537.36 (khtml, like gecko) chrome/27.0.1453.94 safari/537.36 */// 通过正则匹配获取浏览类型和版本// 例如可以这样获取IE的var agent = {}; if (window.ActiveXObject) agent.ie = userAgentInfo.match(/msie ([\d.]+)/)[1]; // 下面就输出信息if(agent.ie) document.write(agent.ie); // IE浏览器下输出浏览下版本号,其他浏览器没有输出信息
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。 如果没有找到该字符串,则返回 false。
$_SERVER 中存放着很多服务器的变量,其中$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。
可以像下面这样判断请求者的浏览器和版本,注意,这里的版本可以是访问者伪造的,不一定正确。
<?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE8.0")) echo"IE8.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE7.0")) echo"IE7.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE6.0")) echo"IE6.0"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/17")) echo"Firefox17"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/16")) echo"Firefox16"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome")) echo"Chrome"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Safari")) echo"Safari"; elseif(strpos($_SERVER["HTTP_USER_AGENT"],"Opera")) echo"Opera"; else echo$_SERVER["HTTP_USER_AGENT"]; ?>
条件注释最初于微软的 Internet Explorer 5浏览器中出现,并且直至 Internet Explorer 9 均支持。[1]微软已宣布于 Internet Explorer 10 中以标准模式处理页面 - 如 HTML5 - 时停止支持,但是旧版网页使用这种技术(于兼容性视图)将继续有效。
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]--><!--[if IE 9]> 仅IE9可识别 <![endif]-->
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:PHP之外观模式
- 详解php中的implements 使用 2020-03-18
- php 中的closure用法详解 2020-03-13
- 深入HTTP响应状态码速查表的详解 2020-02-21
- thinkphp中的多表关联查询的实例详解 2020-02-07
- 如何直接访问php实例对象中的private属性详解 2020-02-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash