- 浏览: 163093 次
- 性别:
- 来自: 杭州
文章分类
最新评论
class BrowserDetector {
var $UA = ""; //$HTTP_USER_AGENT的内容
var $BROWSER= "Unknown"; //浏览器类型
var $PLATFORM = "Unknown"; //操作系统
var $VERSION= ""; //浏览器版本号
var $MAJORVER = ""; //浏览器主版本号
var $MINORVER = ""; //浏览器副版本号
/* 构造函数开始 */
function BrowserDetector(){
$this->UA = getenv(HTTP_USER_AGENT);
$preparens = "";
$parens = "";
$i = strpos($this->UA,"(");
if ($i >= 0) {
$preparens = trim(substr($this->UA,0,$i));
$parens = substr($this->UA,$i+1,strlen($this->UA));
$j = strpos($parens,")");
if($j>=0) {
$parens = substr($parens,0,$j);
}
}
else {
$preparens = $this->UA;
}
$browVer = $preparens;
$token = trim(strtok($parens,";"));
while($token) {
if($token=="compatible") {
}
elseif(preg_match("/MSIE/i","$token")) {
$browVer = $token;
}
elseif(preg_match("/Opera/i","$token")) {
$browVer = $token;
}
elseif(preg_match("/X11/i","$token") || preg_match("/SunOS/i","$token") || preg_match ("/Linux/i","$token")) {
$this->PLATFORM = "Unix";
}
elseif(preg_match("/Win/i","$token")) {
$this->PLATFORM = $token;
}
elseif(preg_match("/Mac/i","$token") || preg_match("/PPC/i","$token")) {
$this->PLATFORM = $token;
}
$token = strtok(";");
}
$msieIndex = strpos($browVer,"MSIE");
if($msieIndex >= 0) {
$browVer = substr($browVer,$msieIndex,strlen($browVer));
}
$leftover = "";
if(substr($browVer,0,strlen("Mozilla")) == "Mozilla") {
$this->BROWSER = "Netscape";
$leftover=substr($browVer,strlen("Mozilla")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen("Lynx")) == "Lynx") {
$this->BROWSER = "Lynx";
$leftover=substr($browVer,strlen("Lynx")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen("MSIE")) == "MSIE") {
$this->BROWSER = "IE";
$leftover=substr($browVer,strlen("MSIE")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen("Microsoft Internet Explorer")) == "MicrosoftInternet Explorer") {
$this->BROWSER = "IE";
$leftover=substr($browVer,strlen("Microsoft Internet Explorer")+1,strlen($browVer));
}
elseif(substr($browVer,0,strlen("Opera")) == "Opera") {
$this->BROWSER = "Opera";
$leftover=substr($browVer,strlen("Opera")+1,strlen($browVer));
}
$leftover = trim($leftover);
$i=strpos($leftover," ");
if($i > 0) {
$this->VERSION =substr($leftover,0,$i);
}
else {
$this->VERSION = $leftover;
}
$j = strpos($this->VERSION,".");
if($j >= 0) {
$this->MAJORVER =substr($this->VERSION,0,$j);
$this->MINORVER =substr($this->VERSION,$j+1,strlen($this->VERSION));
}
else {
$this->MAJORVER = $this->VERSION;
}
}
}
//测试程序开始
$test=new browserdetector;
echo $test->UA."
";
echo $test->BROWSER."
";
echo $test->PLATFORM."
";
echo $test->VERSION."
";
echo $test->MAJORVER."
";
echo $test->MINORVER."
";
?>
发表评论
-
实时编辑表格
2014-06-03 10:08 827实时编辑表格 -
手把手教你在Ubuntu上安装Apache、MySql和PHP
2013-07-11 15:25 01:首先安装apache:打开终端(ctrl+Alt+t), ... -
正则取a
2013-04-17 16:29 0<a[^>]*href=["'](?[^ ... -
操作字符串
2013-04-09 15:42 778strpos() - Find the position ... -
php oracle CLOB
2013-03-05 10:49 22271.php insert oracle 的CLOB字段 ... -
ckeditor配置
2013-04-09 15:42 1227// 界面语言,默认为 'en'config.langua ... -
格式化文件大小
2013-04-09 15:41 860function formatBytes($bytes) ... -
PHP显示Deprecated: Assigning the return value of new by reference is deprecated in
2013-04-09 15:41 934昨晚用Spreadsheet_Excel_Rea ... -
PHP的位运算
2013-01-09 10:34 873$a & $b and(按位与) $a | $b o ... -
cookie和会话(三)
2012-12-10 22:30 9061:如何传输会话ID 会 ... -
cookie和会话(二)
2012-12-07 23:34 1734会话 除了能够在客户机和服务器之间发送少量信息外,还 ... -
cookie和会话(一)
2012-12-05 23:04 1396cookie解决了跟踪各个访问者或用户,服务器利用cook ... -
(转)匹配中文
2012-11-27 17:13 1030在javascript中,要判断 ... -
php+jquery+ajax+json简单小例子
2012-11-22 23:52 75093直接贴代码: <html> <titl ... -
PECR
2012-11-20 22:13 1007经常使用的分隔符是正斜线(/), hash符号(#) 以 ... -
几个经典函数
2012-11-20 00:19 9591:是否为邮件 function is_email($em ... -
html2fpdf HTML转换为PDF
2012-11-14 12:33 6521下载html2fpdf包: downurl:http://s ... -
匹配链接
2012-10-30 11:43 837有一段类似下面的代码,匹配所有的链接地址: $code = ... -
PHP获取类名及所有函数名
2012-08-24 11:48 11799PHP获取类名及所有函数名1.获取行号、文件路径文件名、类名、 ... -
获取<meta>中的content标签内容
2012-02-24 09:04 2066php函数:$tags = get_meta_tags ( ' ...
相关推荐
接着,我们可以编写一个JavaScript函数来检查浏览器版本。例如: ```javascript function checkBrowserVersion() { var userAgent = navigator.userAgent; var browser = { chrome: /Chrome/.test(userAgent), ...
这种方法通过检查浏览器是否支持某个特性来判断浏览器的能力,而不是直接依赖于浏览器的版本信息。 #### 3.2 使用现代工具 可以考虑使用如Modernizr这样的库来检测浏览器支持的功能,而无需关心具体的浏览器类型和...
这个库通常会检查浏览器是否支持如`<canvas>`、`<video>`、`<audio>`、`<section>`、`<article>`等HTML5新元素,以及`localStorage`、`web workers`、`geolocation`等API,如果发现不支持,它会提供一个替代的...
本文将详细介绍如何在ASP.NET中获取客户端的IP地址、操作系统版本和浏览器版本。 ### 获取客户端IP地址 在ASP.NET中,获取客户端IP地址是通过`HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]`来实现...
UserAgent字符串包含了客户端浏览器发送的关于其自身的一系列信息,包括操作系统、浏览器版本等。例如: ```csharp string userAgent = Request.UserAgent; ``` 然后,你可以通过解析这个字符串来提取操作系统信息...
- **界面一致性**:检查不同浏览器下页面布局和样式的差异,确保视觉体验的一致性。 - **性能测试**:评估网站在各种浏览器中的加载时间和资源消耗情况。 - **错误处理**:验证网站在遇到兼容性问题时是否能正确地...
5. **DOM和BOM差异**:不同IE版本的文档对象模型(DOM)和浏览器对象模型(BOM)可能有所不同,需要通过IETester检查其一致性。 6. **调试工具**:IETester通常会提供一些基本的调试工具,如查看元素、控制台日志等...
解决这类问题的一般步骤包括: 1. **检查注册表**:确保所有与WebBrowser控件相关的注册表项已正确注册。这可能涉及到.NET Framework的注册,以及COM组件(如MSHTML)的注册。 2. **更新或修复.NET Framework**:...
创建了一个名为`BrowserDetector`的类,类中包含了一些成员变量用于存储用户代理字符串、浏览器类型、平台类型、浏览器版本号等信息。通过类的构造函数,初始化这些变量,尤其是`$UA`变量,它将保存HTTP_USER_AGENT...
为了处理这种情况,该类可能还会检查其他HTTP头,如`HTTP_X_FORWARDED_FOR`和`HTTP_CLIENT_IP`,以找到最接近客户端的真实IP。 其次,获取地理信息通常涉及到IP地址到地理位置的映射。这个过程可以通过查询IP数据库...
这里特别提到了360浏览器和UC浏览器,它们是支持这类插件的浏览器实例。360浏览器是中国的一款流行浏览器,它基于 Chromium 内核并提供了一些额外的安全特性;UC浏览器则是一款全球使用的手机及电脑浏览器,尤其在...
4. **浏览器版本问题**:旧版本的浏览器可能不支持新的Web技术,而新版本又可能存在bug或者未定义的行为。 "易了千明编程助手.exe"可能是一款集成了浏览器兼容性测试功能的软件,它可以帮助开发者快速检测网页在...
3. **安全设置**:检查浏览器的安全级别设置,可能需要将Java设置为“受信任的站点”或降低安全级别以允许Java内容执行。 4. **清理缓存**:清理浏览器的历史记录,特别是临时互联网文件,以消除可能的错误数据。 ...
通过分析和理解User-Agent信息,开发者可以了解用户使用何种浏览器,是否为移动设备,甚至操作系统和浏览器版本,这对于网页适配、性能优化以及安全策略制定都具有重要意义。 在“List-of-user-agents”这个压缩包...
因此,通过检查浏览器是否支持该对象,我们可以初步判断浏览器版本。 接下来,代码中还使用了`window.ActiveXObject`属性来检测旧版本的IE浏览器。`ActiveXObject`是IE浏览器特有的一个用于创建ActiveX对象的构造...
随着时间推移,新版本的扩展可能会停止支持较旧的浏览器版本。因此,安装和运行小水粒扩展在低版本谷歌浏览器上可能需要一些技巧,例如禁用自动更新、寻找适用于旧版本的特定分支或使用兼容性设置。 为了在低版本...
8. **更新浏览器**:保持搜狗浏览器版本最新,因为新版本可能已经修复了导致下载异常的问题。 解决这类问题通常需要一定的排查步骤,从网络状况到系统设置,再到软件冲突。在“DownloadOCX”这个文件名中,我们可以...
“高校图书馆网站对浏览器兼容性测试.pdf”和“高校网站对浏览器兼容性测试.pdf”可能包含了针对特定类型网站的兼容性测试数据,比如教育机构的网站,这些网站可能有特定的技术需求和用户群体,因此测试结果对于这类...
2. **检测浏览器兼容性**:在脚本中,通常会有条件语句来检查浏览器类型和版本,确保只有在需要的时候才加载polyfill。 3. **使用HTML5新特性**:一旦html5.js生效,开发者就可以像在现代浏览器中一样,使用HTML5的...