關聯課件:7子項目七 -用内置數組獲取服務器環境信息(點擊在線預覽)
7.3.2 用内置數組獲取服務器環境信息
$_SERVER是一個包含諸如頭信息(header)、路徑(path)和腳本位置(script locations)的數組。數組的實體由web服務器創建,但是并不能(néng)保證所有的服務器都(dōu)能(néng)産生所有的信息;服務器可能(néng)忽略了一些信息,或者産生了一些未在表7-1中列出的新的信息。
$_SERVER是一個“superglobal”,或者可以說是一個自動全局變量。這(zhè)就意味它在所有的腳本中都(dōu)有效,而且在函數或方法中不需要使用global $_SERVER,直接訪問就可以了。
要想訪問$_SERVER中的某一個信息,可以采用下面(miàn)的方式:
$_SERVER["信息名稱"]或$_SERVER['信息名稱']
其中具體的信息名稱如表7-1所示。
下面(miàn)來看一個具體的應用實例。
1: <!--文件7-5.php:服務器信息的獲取-->
2: <HTML>
3: <HEAD>
4: <TITLE>服務器信息的獲取</TITLE>
5: </HEAD>
6: <BODY>
7: <?php
8: echo "1、".$_SERVER["PHP_SELF"]."<br>";
9: echo "2、".$_SERVER["argv"]."<br>";
10: echo "3、".$_SERVER["argc"]."<br>";
11: echo "4、".$_SERVER["SERVER_NAME"]."<br>";
12: echo "5、".$_SERVER["SERVER_SOFTWARE"]."<br>";
13: echo "6、".$_SERVER["SERVER_PROTOCOL"]."<br>";
14: echo "7、".$_SERVER["REQUEST_METHOD"]."<br>";
15: echo "8、".$_SERVER["REQUEST_TIME"]."<br>";
16: echo "9、".$_SERVER["QUERY_STRING"]."<br>";
17: echo "10、".$_SERVER["DOCUMENT_ROOT"]."<br>";
18: echo "11、".$_SERVER["HTTP_ACCEPT"]."<br>";
19: echo "12、".$_SERVER["HTTP_ACCEPT_ENCODING"]."<br>";
20: echo "13、".$_SERVER["HTTP_ACCEPT_LANGUAGE"]."<br>";
21: echo "14、".$_SERVER["HTTP_CONNECTION"]."<br>";
22: echo "15、".$_SERVER["HTTP_HOST"]."<br>";
23: echo "16、".$_SERVER["HTTP_USER_AGENT"]."<br>";
24: echo "17、".$_SERVER["HTTPS"]."<br>";
25: echo "18、".$_SERVER["REMOTE_ADDR"]."<br>";
26: echo "19、".$_SERVER["REMOTE_HOST"]."<br>";
27: echo "20、".$_SERVER["SCRIPT_FILENAME"]."<br>";
28: echo "21、".$_SERVER["SERVER_PORT"]."<br>";
29: echo "22、".$_SERVER["PATH_TRANSLATED"]."<br>";
30: echo "23、".$_SERVER["SCRIPT_NAME"]."<br>";
31: echo "24、".$_SERVER["REQUEST_URI"]."<br>";
32: ?>
33: </BODY>
34: </HTML>
直接在浏覽器的地址欄中輸入“https://localhost/phpsource/chapt05/7-5.php”時,其運行效果如圖7-5(a)所示,在浏覽器的地址欄中輸入“https://localhost/phpsource/chapt05/ 7-5.php?id=6”時其運行效果如圖7-5(b)所示。同樣在浏覽器的地址欄中輸入“https:// 127.0.0.1/phpsource/chapt05/7-5.php”和“https:// 127.0.0.1/phpsource/chapt05/7-5.php? id=6”時又會得到不完全相同的運行效果。從圖7-5(a)和圖7-5(b)所示的結果進(jìn)行分析,可以看出不同的服務器的信息有的時候輸出效果是一樣的,如圖7-6(a)中的23行和24行;有的服務器信息在某些時候是沒(méi)有輸出值的,而當地址欄信息發(fā)生變換時就有了輸出值,如第9行。
圖7-6 程序7-5.php的運行結果
$_SERVER是PHP中十分實用的超全局變量,在開(kāi)發(fā)可移植的網站的時候會變得很有用。
1.$_SERVER['SERVER_NAME']:記錄了網站的域名。 2.$_SERVER['DOCUMENT_ROOT']:網站的根目錄(就是在你系統下的絕對(duì)路徑,在windows都(dōu)是例如是C://wamp/www之類的,linux例如是/var/www/html)。 3.$_SERVER['SERVER_ADDR']:記錄網站的IP地址 4.$_SERVER['REMOTE_ADDR']:記錄訪問者的IP地址 5.$_SERVER['SCRIPT_FILENAME']:訪問的文件的路徑 6.$_SERVER['REQUEST_SCHEME']:訪問的文件的方式,常見爲http