本文实例讲述了PHP实现的浏览器检查类。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<?php
//原作者:epsilon7
//SonyMusic([email]sonymusic@163.net[/email])
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" )) == "Microsoft Internet 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. "<br>" ;
echo $test ->BROWSER. "<br>" ;
echo $test ->PLATFORM. "<br>" ;
echo $test ->VERSION. "<br>" ;
echo $test ->MAJORVER. "<br>" ;
echo $test ->MINORVER. "<br>" ;
?>
|
希望本文所述对大家PHP程序设计有所帮助。