php中的$_SERVER数组变量

php $_SERVER当前完整url的写法
‘http://’.$_SERVER [‘HTTP_HOST’].$_SERVER[‘PHP_SELF’].’?’.$_SERVER[‘QUERY_STRING’];

print_r($_SERVER);

Array
(
    [DOCUMENT_ROOT] => /home6/twosixe2/public_html/king
    [GATEWAY_INTERFACE] => CGI/1.1
    [HTTP_ACCEPT] => application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    [HTTP_ACCEPT_CHARSET] => GBK,utf-8;q=0.7,*;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip,deflate,sdch
    [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_CONNECTION] => keep-alive
    [HTTP_COOKIE] => __utmz=238801119.1279444463.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utma=238801119.1916031422.1279444463.1279444463.1279444463.1; rtime=0; ltime=1279444853740; cnzz_eid=20179994-1279444456-
    [HTTP_HOST] => www.onexin.net
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.458.1 Safari/534.3
    [PATH] => /bin:/usr/bin
    [QUERY_STRING] =>
    [REDIRECT_STATUS] => 200
    [REMOTE_ADDR] => 113.92.112.126
    [REMOTE_PORT] => 1856
    [REQUEST_METHOD] => GET
    [REQUEST_URI] => /php_server.php
    [SCRIPT_FILENAME] => /home6/twosixe2/public_html/king/php_server.php
    [SCRIPT_NAME] => /php_server.php
    [SERVER_ADDR] => 66.147.255.229
    [SERVER_ADMIN] => webmaster@onexin.2688.us
    [SERVER_NAME] => www.onexin.net
    [SERVER_PORT] => 80
    [SERVER_PROTOCOL] => HTTP/1.1
    [SERVER_SIGNATURE] =>
Apache/2.2.16 (CentOS) mod_ssl/2.2.16 0.9.8l DAV/2 mod_fcgid/2.3.5 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635 Server at www.onexin.net Port 80

    [SERVER_SOFTWARE] => Apache/2.2.16 (CentOS) mod_ssl/2.2.16 0.9.8l DAV/2 mod_fcgid/2.3.5 mod_auth_passthrough/2.1 FrontPage/5.0.2.2635
    [UNIQUE_ID] => TH@0RkKT8LMAAEZDtH0AAABA
    [file_gzip] => /ramdisk/cpud/status
    [PHP_SELF] => /php_server.php
    [REQUEST_TIME] => 1283437639
    [argv] => Array
        (
        )

    [argc] => 0
)

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 认证功能,这个变量便是认证的类型

Leave a Reply