php中的SERVER變數

shupan001發表於2011-10-10

$_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----



相關文章