php中的SERVER变量
作者:admin 日期:2011-04-17
1,$_SERVER["QUERY_STRING"]
说明:查询(query)的字符串
2,$_SERVER["REQUEST_URI"]
说明:访问此页面所需的URI
3,$_SERVER["SCRIPT_NAME"]
说明:包含当前脚本的路径
4,$_SERVER["PHP_SELF"]
说明:当前正在执行脚本的文件名
实例:
1,http://www.biuuu.com/ (直接打开主页)
结果:
$_SERVER["QUERY_STRING"] = “”
$_SERVER["REQUEST_URI"] = “/”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
2,http://www.biuuu.com/?p=222 (附带查询)
结果:
$_SERVER["QUERY_STRING"] = “p=222″
$_SERVER["REQUEST_URI"] = “/?p=222″
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
3,http://www.biuuu.com/index.php?p=222&q=biuuu
结果:
$_SERVER["QUERY_STRING"] = “p=222&q=biuuu”
$_SERVER["REQUEST_URI"] = “/index.php?p=222&q=biuuu”
$_SERVER["SCRIPT_NAME"] = “/index.php”
$_SERVER["PHP_SELF"] = “/index.php”
$_SERVER["QUERY_STRING"]获取查询语句,实例中可知,获取的是?后面的值
$_SERVER["REQUEST_URI"] 获取http://www.biuuu.com后面的值,包括/
$_SERVER["SCRIPT_NAME"] 获取当前脚本的路径,如:index.php
$_SERVER["PHP_SELF"] 当前正在执行脚本的文件名
当前url:”http://”.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']
总结一下,对于QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF,深入了解将有利于我们在$_SERVER函数中正确调用这四个值。通过实例详解$_SERVER函数中QUERY_STRING,REQUEST_URI,SCRIPT_NAME和PHP_SELF掌握四个变量之间的区别。
1.
$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言
显示:zh-cn
2.
$_SERVER['REMOTE_ADDR'] //当前用户 IP 。
显示:127.0.0.1
3.
$_SERVER['REMOTE_HOST'] //当前用户主机名
显示:
4
$_SERVER['REQUEST_URI'] //URL
显示:/test.php
5
$_SERVER['REMOTE_PORT'] //端口。
显示:3864
6
$_SERVER['SERVER_NAME'] //服务器主机的名称。
显示:127.0.0.1
7
$_SERVER['PHP_SELF']//正在执行脚本的文件名
显示:/test.php
8
$_SERVER['argv'] //传递给该脚本的参数。
显示:ARRAY
9
$_SERVER['argc'] //传递给程序的命令行参数的个数。
显示:0
10
$_SERVER['GATEWAY_INTERFACE']//CGI 规范的版本。
显示: CGI/1.1
11
$_SERVER['SERVER_SOFTWARE'] //服务器标识的字串
显示:Apache/2.0.52 (Win32) PHP/5.2.1
12
$_SERVER['SERVER_PROTOCOL'] //请求页面时通信协议的名称和版本
显示:HTTP/1.1
13
$_SERVER['REQUEST_METHOD']//访问页面时的请求方法
显示:GET
14
$_SERVER['QUERY_STRING'] //查询(query)的字符串。
显示:
15
$_SERVER['DOCUMENT_ROOT'] //当前运行脚本所在的文档根目录
显示:D:/Program Files/Apache/www
16
$_SERVER['HTTP_ACCEPT'] //当前请求的 Accept: 头部的内容。
显示:*/*
17
$_SERVER['HTTP_ACCEPT_CHARSET'] //当前请求的 Accept-Charset: 头部的内容。
显示:
18
$_SERVER['HTTP_ACCEPT_ENCODING'] //当前请求的 Accept-Encoding: 头部的内容
显示:gzip,deflate
19
$_SERVER['HTTP_CONNECTION'] //当前请求的 Connection: 头部的内容。例如:“Keep-Alive”。
显示:Keep-Alive
20
$_SERVER['HTTP_HOST'] //当前请求的 Host: 头部的内容。
显示:127.0.0.1:8080
21
$_SERVER['HTTP_REFERER'] //链接到当前页面的前一页面的 URL 地址。
显示:http://127.0.0.1:8080/
22
$_SERVER['HTTP_USER_AGENT'] //当前请求的 User_Agent: 头部的内容。
显示:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
23
$_SERVER['HTTPS']//如果通过https访问,则被设为一个非空的值(on),否则返回off
显示:
24
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。
显示:D:/Program Files/Apache/www/test.php
25
$_SERVER['SERVER_ADMIN'] #管理员信息
显示:w@w.com
26
$_SERVER['SERVER_PORT'] #服务器所使用的端口
显示:8080
27
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。
显示:Apache/2.0.52 (Win32) PHP/5.2.1 Server at 10.145.40.150 Port 8080
28
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统(不是文档根目录)的基本路径。
显示:
29
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。
显示 :/test.php
30
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
显示:
31
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
显示:
32
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型
显示:
例子:
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
<?php
$c=1;
$a=array($_SERVER['HTTP_ACCEPT_LANGUAGE'],
$_SERVER['REMOTE_ADDR'],
$_SERVER['REMOTE_HOST'],
$_SERVER['REQUEST_URI'],
$_SERVER['REMOTE_PORT'],
$_SERVER['SERVER_NAME'],
$_SERVER['PHP_SELF'],
$_SERVER['argv'],
$_SERVER['argc'],
$_SERVER['GATEWAY_INTERFACE'],
$_SERVER['SERVER_SOFTWARE'],
$_SERVER['SERVER_PROTOCOL'],
$_SERVER['REQUEST_METHOD'],
$_SERVER['QUERY_STRING'],
$_SERVER['DOCUMENT_ROOT'],
$_SERVER['HTTP_ACCEPT'],
$_SERVER['HTTP_ACCEPT_CHARSET'],
$_SERVER['HTTP_ACCEPT_ENCODING'],
$_SERVER['HTTP_CONNECTION'],
$_SERVER['HTTP_HOST'],
$_SERVER['HTTP_REFERER'],
$_SERVER['HTTP_USER_AGENT'],
$_SERVER['HTTPS'],
$_SERVER['SCRIPT_FILENAME'],
$_SERVER['SERVER_ADMIN'],
$_SERVER['SERVER_PORT'],
$_SERVER['SERVER_SIGNATURE'],
$_SERVER['PATH_TRANSLATED'],
$_SERVER['SCRIPT_NAME'],
$_SERVER['PHP_AUTH_USER'],
$_SERVER['PHP_AUTH_PW'],
$_SERVER['AUTH_TYPE']);
foreach ($a as $key=>$b) {
echo $c."----";
echo $b."<br>";
$c++;
}
?>
显示结果:
1----zh-cn
2----10.145.40.150
3----
4----/text.php
5----3867
6----10.145.40.150
7----/text.php
8----Array
9----0
10----CGI/1.1
11----Apache/2.0.52 (Win32) PHP/5.2.1
12----HTTP/1.1
13----GET
14----
15----D:/Program Files/Apache/www
16----*/*
17----
18----gzip, deflate
19----Keep-Alive
20----10.145.40.150:8080
21----http://10.145.40.150:8080/
22----Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
23----
24----D:/Program Files/Apache/www/text.php
25----w@w.com
26----8080
27----
Apache/2.0.52 (Win32) PHP/5.2.1 Server at 10.145.40.150 Port 8080
28----
29----/text.php
30----
31----
32----