PHP预定义变量

介绍

任何PHP脚本都可以访问许多预定义变量。但是,其中许多依赖于Web服务器软件,PHP版本和其他因素。其中某些变量不适用于以命令行模式运行的脚本。$GLOBALS变量存储所有全局可用的预定义变量的引用。这些变量中的大多数由phpinfo.php显示。此处介绍了一些常用的预定义变量。

$_SERVER

这是一个数组变量,其中包含有关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

$_GET

默认情况下,客户端浏览器通过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

$_POST

通过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

$_FILES

此变量是一个关联数组,包含通过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 ) )

$_REQUEST

该变量是一个关联数组,提供$_GET,$_ POST和$_COOKIE预定义变量的内容。

$_SESSION

此变量是代表HTTP会话的变量的关联数组。

$_ENV

环境变量数组构成该预定义变量。这些变量被导入PHP的全局命名空间。

$_COOKIE

服务器可以以cookie的形式将某些数据存储在客户端的计算机中。每次发出请求时都会发送这些cookie。_COOKIE变量是Cookie变量及其值的关联数组。