$_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 认证功能,这个变量便是认证的类型
显示:
例子:
<?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
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----