关联课件:7子项目七 -用内置数组获取服务器环境信息(点击在线预览)
7.3.2 用内置数组获取服务器环境信息
$_SERVER是一个包含诸如头信息(header)、路径(path)和脚本位置(script locations)的数组。数组的实体由web服务器创建,但是并不能保证所有的服务器都能产生所有的信息;服务器可能忽略了一些信息,或者产生了一些未在表7-1中列出的新的信息。
$_SERVER是一个“superglobal”,或者可以说是一个自动全局变量。这就意味它在所有的脚本中都有效,而且在函数或方法中不需要使用global $_SERVER,直接访问就可以了。
要想访问$_SERVER中的某一个信息,可以采用下面的方式:
$_SERVER["信息名称"]或$_SERVER['信息名称']
其中具体的信息名称如表7-1所示。
下面来看一个具体的应用实例。
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)所示的结果进行分析,可以看出不同的服务器的信息有的时候输出效果是一样的,如图7-6(a)中的23行和24行;有的服务器信息在某些时候是没有输出值的,而当地址栏信息发生变换时就有了输出值,如第9行。
图7-6 程序7-5.php的运行结果
$_SERVER是PHP中十分实用的超全局变量,在开发可移植的网站的时候会变得很有用。
1.$_SERVER['SERVER_NAME']:记录了网站的域名。 2.$_SERVER['DOCUMENT_ROOT']:网站的根目录(就是在你系统下的绝对路径,在windows都是例如是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