本文实例讲述了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程序设计有所帮助。