PHP判断浏览器、判断语言代码分享

时间:2022-09-25 11:28:29

PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。

判断浏览器类型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//判断类型 
<?php
if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
echo "Internet Explorer 8.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
echo "Internet Explorer 7.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
echo "Internet Explorer 6.0";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
echo "Firefox 3";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
echo "Firefox 2";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
echo "Google Chrome";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
echo "Safari";
else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
echo "Opera";
else echo $_SERVER["HTTP_USER_AGENT"];
?>

判断语言

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
if (preg_match("/zh-c/i", $lang))
echo "简体中文";
else if (preg_match("/zh/i", $lang))
echo "繁體中文";
else if (preg_match("/en/i", $lang))
echo "English";
else if (preg_match("/fr/i", $lang))
echo "French";
else if (preg_match("/de/i", $lang))
echo "German";
else if (preg_match("/jp/i", $lang))
echo "Japanese";
else if (preg_match("/ko/i", $lang))
echo "Korean";
else if (preg_match("/es/i", $lang))
echo "Spanish";
else if (preg_match("/sv/i", $lang))
echo "Swedish";
else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>

判断浏览器内核的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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<?php
error_reporting(E_ALL & ~ E_NOTICE);
class clientGetObj 
function getBrowse() 
global $_SERVER
$Agent = $_SERVER['HTTP_USER_AGENT']; 
$browser = ''
$browserver = ''
$Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb'); 
for($i = 0; $i <= 7; $i ++){ 
if(strpos($Agent, $Browsers[$i])){ 
$browser = $Browsers[$i]; 
$browserver = ''
if(preg_match('/Mozilla/', $Agent) && !preg_match('/MSIE/', $Agent)){ 
$temp = explode('(', $Agent); 
$Part = $temp[0]; 
$temp = explode('/', $Part); 
$browserver = $temp[1]; 
$temp = explode(' ', $browserver); 
$browserver = $temp[0]; 
$browserver = preg_replace('/([d.]+)/', '1', $browserver); 
$browserver = $browserver
$browser = 'Netscape Navigator'
if(preg_match('/Mozilla/', $Agent) && preg_match('/Opera/', $Agent)) { 
$temp = explode('(', $Agent); 
$Part = $temp[1]; 
$temp = explode(')', $Part); 
$browserver = $temp[1]; 
$temp = explode(' ', $browserver); 
$browserver = $temp[2]; 
$browserver = preg_replace('/([d.]+)/', '1', $browserver); 
$browserver = $browserver
$browser = 'Opera'
if(preg_match('/Mozilla/', $Agent) && preg_match('/MSIE/', $Agent)){ 
$temp = explode('(', $Agent); 
$Part = $temp[1]; 
$temp = explode(';', $Part); 
$Part = $temp[1]; 
$temp = explode(' ', $Part); 
$browserver = $temp[2]; 
$browserver = preg_replace('/([d.]+)/','1',$browserver); 
$browserver = $browserver
$browser = 'Internet Explorer'
if($browser != ''){ 
$browseinfo = $browser.' '.$browserver
} else {
$browseinfo = false; 
return $browseinfo
  
function getIP () 
global $_SERVER
if (getenv('HTTP_CLIENT_IP')) { 
$ip = getenv('HTTP_CLIENT_IP'); 
} else if (getenv('HTTP_X_FORWARDED_FOR')) { 
$ip = getenv('HTTP_X_FORWARDED_FOR'); 
} else if (getenv('REMOTE_ADDR')) { 
$ip = getenv('REMOTE_ADDR'); 
} else
$ip = $_SERVER['REMOTE_ADDR']; 
return $ip
  
function getOS () 
global $_SERVER
$agent = $_SERVER['HTTP_USER_AGENT']; 
$os = false; 
if (preg_match('/win/', $agent) && strpos($agent, '95')){ 
$os = 'Windows 95'
else if (preg_match('/win 9x/', $agent) && strpos($agent, '4.90')){ 
$os = 'Windows ME'
else if (preg_match('/win/', $agent) && preg_match('98', $agent)){ 
$os = 'Windows 98'
else if (preg_match('/win/', $agent) && preg_match('nt 5.1', $agent)){ 
$os = 'Windows XP'
else if (preg_match('/win/', $agent) && preg_match('nt 5', $agent)){ 
$os = 'Windows 2000'
else if (preg_match('/win/', $agent) && preg_match('nt', $agent)){ 
$os = 'Windows NT'
else if (preg_match('/win/', $agent) && preg_match('32', $agent)){ 
$os = 'Windows 32'
else if (preg_match('/linux/', $agent)){ 
$os = 'Linux'
else if (preg_match('/unix/', $agent)){ 
$os = 'Unix'
else if (preg_match('/sun/', $agent) && preg_match('os', $agent)){ 
$os = 'SunOS'
else if (preg_match('/ibm/', $agent) && preg_match('os', $agent)){ 
$os = 'IBM OS/2'
else if (preg_match('/Mac/', $agent) && preg_match('PC', $agent)){ 
$os = 'Macintosh'
else if (preg_match('/PowerPC/', $agent)){ 
$os = 'PowerPC'
else if (preg_match('/AIX/', $agent)){ 
$os = 'AIX'
else if (preg_match('/HPUX/', $agent)){ 
$os = 'HPUX'
else if (preg_match('/NetBSD/', $agent)){ 
$os = 'NetBSD'
else if (preg_match('/BSD/', $agent)){ 
$os = 'BSD'
else if (preg_match('/OSF1/', $agent)){ 
$os = 'OSF1'
else if (preg_match('/IRIX/', $agent)){ 
$os = 'IRIX'
else if (preg_match('/FreeBSD/', $agent)){ 
$os = 'FreeBSD'
else if (preg_match('/teleport/', $agent)){ 
$os = 'teleport'
else if (preg_match('/flashget/', $agent)){ 
$os = 'flashget'
else if (preg_match('/webzip/', $agent)){ 
$os = 'webzip'
else if (preg_match('/offline/', $agent)){ 
$os = 'offline'
else
$os = 'Unknown'
return $os
}
$code = new clientGetObj; 
echo $str1 = $code->getBrowse()."<br>";//浏览器: 
echo $str2 = $code->getIP()."<br>";//IP地址: 
echo $str3 = $code->getOS();//操作系统: 
?>
 

以上就是个人整理的关于$_SERVER获取服务器信息的常用信息了,希望大家能够喜欢。