1 <?php
2 /**
3 * 取得阅读器名称和版本
4 *
5 * @access public
6 * @return string
7 */
8 function getbrowser()
9 {
10 global $_SERVER;
11
12 $agent= $_SERVER['HTTP_USER_AGENT'];
13 $browser= '';
14 $browser_ver= '';
15
16 if (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs))
17 {
18 $browser='OmniWeb';
19 $browser_ver= $regs[2];
20 }
21
22 if (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs))
23 {
24 $browser='Netscape';
25 $browser_ver= $regs[2];
26 }
27
28 if (preg_match('/safari\/([^\s]+)/i', $agent, $regs))
29 {
30 $browser='Safari';
31 $browser_ver=$regs[1];
32 }
33
34 if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs))
35 {
36 $browser='Internet Explorer';
37 $browser_ver= $regs[1];
38 }
39
40 if (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs))
41 {
42 $browser='Opera';
43 $browser_ver=$regs[1];
44 }
45
46 if (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs))
47 {
48 $browser='(Internet Explorer ' .$browser_ver. ') NetCaptor';
49 $browser_ver= $regs[1];
50 }
51
52 if (preg_match('/Maxthon/i', $agent, $regs))
53 {
54 $browser='(Internet Explorer ' .$browser_ver. ') Maxthon';
55 $browser_ver='';
56 }
57
58 if (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs))
59 {
60 $browser='FireFox';
61 $browser_ver=$regs[1];
62 }
63
64 if (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs))
65 {
66 $browser='Lynx';
67 $browser_ver=$regs[1];
68 }
69
70 if ($browser != '')
71 {
72 return $browser.' '.$browser_ver;
73 }
74 else
75 {
76 return 'Unknow browser';
77 }
78 }
79
80 /**
81 * 取得客户真个操作体系
82 *
83 * @access private
84 * @return void
85 */
86 function get_os()
87 {
88 $agent = $_SERVER['HTTP_USER_AGENT'];
89 $os = false;
90
91 if (eregi('win', $agent) && strpos($agent, '95'))
92 {
93 $os = 'Windows 95';
94 }
95 else if (eregi('win 9x', $agent) && strpos($agent, '4.90'))
96 {
97 $os = 'Windows ME';
98 }
99 else if (eregi('win', $agent) && ereg('98', $agent))
100 {
101 $os = 'Windows 98';
102 }
103 else if (eregi('win', $agent) && eregi('nt 6.0', $agent))
104 {
105 $os = 'Windows Vista';
106 }
107 else if (eregi('win', $agent) && eregi('nt 6.1', $agent))
108 {
109 $os = 'Windows 7';
110 }
111 else if (eregi('win', $agent) && eregi('nt 5.1', $agent))
112 {
113 $os = 'Windows XP';
114 }
115 else if (eregi('win', $agent) && eregi('nt 5', $agent))
116 {
117 $os = 'Windows 2000';
118 }
119 else if (eregi('win', $agent) && eregi('nt', $agent))
120 {
121 $os = 'Windows NT';
122 }
123 else if (eregi('win', $agent) && ereg('32', $agent))
124 {
125 $os = 'Windows 32';
126 }
127 else if (eregi('linux', $agent))
128 {
129 $os = 'Linux';
130 }
131 else if (eregi('unix', $agent))
132 {
133 $os = 'Unix';
134 }
135 else if (eregi('sun', $agent) && eregi('os', $agent))
136 {
137 $os = 'SunOS';
138 }
139 else if (eregi('ibm', $agent) && eregi('os', $agent))
140 {
141 $os = 'IBM OS/2';
142 }
143 else if (eregi('Mac', $agent) && eregi('PC', $agent))
144 {
145 $os = 'Macintosh';
146 }
147 else if (eregi('PowerPC', $agent))
148 {
149 $os = 'PowerPC';
150 }
151 else if (eregi('AIX', $agent))
152 {
153 $os = 'AIX';
154 }
155 else if (eregi('HPUX', $agent))
156 {
157 $os = 'HPUX';
158 }
159 else if (eregi('NetBSD', $agent))
160 {
161 $os = 'NetBSD';
162 }
163 else if (eregi('BSD', $agent))
164 {
165 $os = 'BSD';
166 }
167 else if (ereg('OSF1', $agent))
168 {
169 $os = 'OSF1';
170 }
171 else if (ereg('IRIX', $agent))
172 {
173 $os = 'IRIX';
174 }
175 else if (eregi('FreeBSD', $agent))
176 {
177 $os = 'FreeBSD';
178 }
179 else if (eregi('teleport', $agent))
180 {
181 $os = 'teleport';
182 }
183 else if (eregi('flashget', $agent))
184 {
185 $os = 'flashget';
186 }
187 else if (eregi('webzip', $agent))
188 {
189 $os = 'webzip';
190 }
191 else if (eregi('offline', $agent))
192 {
193 $os = 'offline';
194 }
195 else
196 {
197 $os = 'Unknown';
198 }
199 return $os;
200 }
201
202 // 调用方式:
203 echo get_os();
204 echo getbrowser();