任何PHP脚本都可以访问许多预定义变量。但是,其中许多依赖于Web服务器软件,PHP版本和其他因素。其中某些变量不适用于以命令行模式运行的脚本。$GLOBALS变量存储所有全局可用的预定义变量的引用。这些变量中的大多数由phpinfo.php显示。此处介绍了一些常用的预定义变量。
这是一个数组变量,其中包含有关HTTP标头,脚本和环境的信息。以下是该数组的一些杰出成员
PHP_SELF-存储当前正在执行的脚本的文件名。例如,本地服务器文档根目录的test文件夹中的脚本返回其路径,如下所示:
<?php echo $_SERVER['PHP_SELF']; ?>
输出结果
这将导致浏览器中带有http://localhost/test/testscript.php URL的以下输出
/test/testscript.php
SERVER_ADDR-数组的此属性返回当前脚本正在其下执行的服务器的IP地址。
SERVER_NAME-当前脚本正在其下执行的服务器主机的名称。如果在本地运行erver,则返回localhost
QUERY_STRING-查询字符串是键=值对的字符串,由&符号分隔,并附加在URL之后?符号。例如,http:// localhost / testscript?name = xyz&age = 20 URL返回尾随查询字符串
REQUEST_METHOD-用于访问URL的HTTP请求方法,例如POST,GET,POST,PUT或DELETE。在上面的查询字符串示例中,附加到查询字符串wirh?的URL。符号使用GET方法请求页面
DOCUMENT_ROOT-返回配置为文档根目录的服务器上目录的名称。在XAMPP apache服务器上,它返回htdocs作为文档根目录的名称
C:/xampp/htdocs
DOCUMENT_ROOT-这是一个字符串,表示正在访问页面的用户代理(浏览器)。
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
REMOTE_ADDR-用户正在从中查看当前页面的计算机的IP地址。
SERVER_PORT -Web服务器正在侦听传入请求的端口号。默认值为80
默认情况下,客户端浏览器通过HTTP GET方法在服务器上发送URL请求。附加到URL的查询字符串可能包含由&符号连接的键=值对。$_GET关联数组存储这些键值对
假设浏览器中的URL是http:// localhost / testscript?name = xyz&age = 20
<?php echo "Name : " . $_GET["name"] . "<br>"; echo "Age : " . $_GET["age"]; ?>
输出结果
这将产生以下结果-
Name : xyz Age : 20
通过HTTP POST方法传递给URL的键值对的关联数组,该方法在请求中使用URLEncoded或multipart / form-data内容类型。
通过以HTML形式test.html指定action = POST,使用POST方法将数据发送到PHP脚本,如下所示-
<form action="testscript.php" method="POST"> <input type="text" name="name"> <input type="text" name="age"> <input type ="submit" valaue="submit"> </form>
PHP脚本如下-
<?php echo "Name : " . $_POST["name"] . "<br>"; echo "Age : " . $_POST["age"]; ?>
输出结果
这将产生以下结果-
Name : xyz Age : 20
此变量是一个关联数组,包含通过HTTP POST方法上传的项目。上载文件需要将enctype属性设置为multipart / form-data的HTTP POST方法形式。
<form action="testscript.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type ="submit" valaue="submit"> </form>
在PHP脚本中,按以下方式访问_FILES变量-
<?php print_r($_FILES); ?>
输出结果
Array ( [file] => Array ( [name] => hello.html [type] => text/html [tmp_name] => C:\xampp\tmp\php9647.tmp [error] => 0 [size] => 56 ) )
该变量是一个关联数组,提供$_GET,$_ POST和$_COOKIE预定义变量的内容。
此变量是代表HTTP会话的变量的关联数组。
环境变量数组构成该预定义变量。这些变量被导入PHP的全局命名空间。
服务器可以以cookie的形式将某些数据存储在客户端的计算机中。每次发出请求时都会发送这些cookie。_COOKIE变量是Cookie变量及其值的关联数组。