全方位站长技能、SEO优化学习平台
当前位置:网站首页 > PHP笔记 > 正文

PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量

作者:文煞发布时间:2024-03-09分类:PHP笔记浏览:268


温馨提示:手机扫码可阅读当前文章!
文章简介:PHP 中的超级全局变量是内置的,可以在整个脚本中使用的特殊变量。从 PHP 4.1.0 开始,这些变量就一直是 PHP 编程的一部分。它们使得在函数和类中访问全局变量变得容易,无需特别的声明。一、有哪些超全局变量?本文大致为你整理出以下几...

PHP 中的超级全局变量是内置的,可以在整个脚本中使用的特殊变量。从 PHP 4.1.0 开始,这些变量就一直是 PHP 编程的一部分。它们使得在函数和类中访问全局变量变得容易,无需特别的声明。

PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第1张

一、有哪些超全局变量?


本文大致为你整理出以下几类超级全局变量:

1. $GLOBALS:包含了所有全局变量的数组,可以在脚本的任何部分访问和修改这些变量。

2. $_SERVER:包含了服务器相关的信息,如头信息、路径、端口、IP和脚位置等。这些信息由 Web 服务器提供。

3. $_REQUEST:用于收集 HTML 表单提交的数据。它包含了 `$_POST` 和 `$_GET` 数组中的数据。

4. $_POST广泛用于收集通过 "method=post" 的 HTML 表单数据。

5. $_GET用于收集通过 "method=get" 的 HTML 表单数据,也可以从 URL 中获取参数。

6. $_FILES用于访问上传的文件。

7. $_ENV包含了环境变量的数组,如服务器上的用户名、路径等。

8. $_COOKIE:包含了通过 HTTP cookie 发送的数据。

9. $_SESSION:用于存储跨请求的会话数据,可以在用户浏览的不同页面之间保持数据。


二、常用超级全局变量介绍


这些超级全局变量在 PHP 编程中非常重要,因为它们允许你轻松地访问和处理来自用户输入、服务器环境和会话数据的信息。了解每个变量的用途和如何正确地使用它们,对于开发健壮和高效的 PHP 应用程序至关重要。

接下来,我们将详细介绍一些常用的超级全局变量。

1、$GLOBALS全局数组

首先是介绍$GLOBALS。这是一个全局数组,你可以通过它的键来访问和修改任何全局变量。例如:

  • PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第2张


<?php$x = 75;$y = 25;function addition() {    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];}addition();echo $z; // 输出 100?>


在这个例子中,我们定义了一个函数 addition,它修改了全局变量 $z。因为 $GLOBALS是全局的,所以函数内外都可以访问和修改它。

2、$_SERVER全局数组

$_SERVER数组包含了诸如服务器变量等信息。例如:


  • PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第3张 

<?phpecho $_SERVER['PHP_SELF']; echo "<br>";echo $_SERVER['SERVER_NAME']; echo "<br>";echo $_SERVER['HTTP_HOST']; echo "<br>";echo $_SERVER['HTTP_REFERER']; echo "<br>";echo $_SERVER['HTTP_USER_AGENT']; echo "<br>";echo $_SERVER['SCRIPT_NAME'];?>


$_SERVER数组中的元素提供了关于服务器环境和请求的信息。这些信息通常由 Web 服务器设置,并在 PHP 脚本中通过 $_SERVER访问。

3、$_REQUEST表单数据

$_REQUEST用于收集 HTML 表单提交的数据。以下是一个简单的表单和处理它的脚本:


PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第4张

<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">    Name: <input type="text" name="fname">    <input type="submit"></form><?php$name = $_REQUEST['fname'];echo $name;?></body></html>


当用户填写表单并提交时,表单数据将发送到当前脚本,并可以通过 $_REQUEST数组访问并提取数据。

4、$_POST表单数据

$_POST用于收集通过method=post的表单数据。用法和$_REQUEST类似,但更专门用于 POST 方法的数据:


PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第5张 

<html><body><form method="post" action="<?php echo $_SERVER['PH_SELF'];?">    Name: <input type="text" name="fname">    <input type="submit"></form><?php$name = $_POST['fname'];echo $name;?></body></html>


5、$_GET表单数据

最后是$_GET,它用于收集通过method=get提交的表单数据,也可以从 URL 中获取参数。例如:


PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第6张 

<html><body><a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a></body></html>


在这个例子中,点击链接会向test_get.php发送参数。

test_get.php文件代码如下所示:


  • PHP超级全局变量介绍:新手如何使用$_SERVER、$_POST、$_GET这类超级全局变量  第7张 

<html><body><?phpecho "Study " . $_GET['subject'] . " @ " . $_GET['web'];?></body></html>


当用户点击链接时,参数subject和web会发送到test_get.php,并通过 $_GET数组访问这些数据。这里通过echo来展示这些内容,你还可以进行其他处理。

这些就是 PHP 中的一些最常用超级全局变量。了解和使用这些变量对于 PHP 开发者来说非常重要,因为它们是处理表单数据和环境信息的基础。接下来我会为大家整理一些超全局变量数组的列表,供大家参考使用。


三、PHP超级全局变量列表


PHP超级全局变量$_SERVER列表
变量名称变量值含义
$_SERVER['PHP_SELF']当前执行脚本的文件名,与文档根目录有关。例:http://example.com/test.php中$_SERVER['PHP_SELF']的值是:到/test.php。
$_SERVER['SERVER_NAME']当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
$_SERVER['SERVER_SOFTWARE']服务器标识字符串,在响应请求时的头信息中给出。例如:Apache/2.2.24。
$_SERVER['SERVER_PROTOCOL']请求页面时通信协议的名称和版本。例如,HTTP/1.0 或 HTTP/1.1。
$_SERVER['REQUEST_METHOD']访问页面使用的请求方法;例如,GET, HEAD, POST, PUT等。
$_SERVER['REQUEST_TIME']请求开始时的时间戳。从 PHP 5.1.0 起可用。
$_SERVER['QUERY_STRING']查询字符串,如果有的话,通过它进行页面访问。
$_SERVER['HTTP_ACCEPT']当前请求头中Accept项的内容,如果存在的话。
$_SERVER['HTTP_ACCEPT_CHARSET']当前请求头中Accept-Charset:项的内容,如果存在的话。例如:iso-8859-1,*,utf-8。
$_SERVER['HTTP_HOST']当前请求头中Host项的内容,如果存在的话。
$_SERVER['HTTP_REFERER']引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。
$_SERVER['HTTP_USER_AGENT']用户代理发送的User-Agent头信息。如:浏览器信息,IP地址,设备信息等一些与浏览者相关的信息!
$_SERVER['SCRIPT_NAME']包含当前脚本的路径。这在页面需要指向自己时非常有用。
$_SERVER['SERVER_ADDR']当前运行脚本所在的服务器的 IP 地址。
$_SERVER['SERVER_PORT']Web 服务器使用的端口。默认值为80。如果使用 SSL 安全连接,这个值为用户设置的 HTTP 端口,通常是443。
$_SERVER['SERVER_SIGNATURE']包含了服务器版本和虚拟主机名的字符串。
$_SERVER['PATH_TRANSLATED']当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
$_SERVER['SCRIPT_FILENAME']当前执行脚本的绝对路径。
$_SERVER['SERVER_ADMIN']该值指明了 Apache 服务器配置文件中的 `SERVER_ADMIN` 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
$_SERVER['HTTP_X_FORWARDED_FOR']代理服务器发送的 IP 地址,通常用于识别客户端的原始 IP 地址。
$_SERVER['REMOTE_ADDR']浏览当前页面的用户的 IP 地址。如果用户使用了代理IP,则需要使用$_SERVER['HTTP_X_FORWARDED_FOR']来准确获取!
$_SERVER['REMOTE_USER']当使用身份验证(如使用 Basic 身份验证时),包含通过身份验证的用户名。
$_SERVER['HTTPS']用于标识请求是通过 HTTPS 协议发送的。
$_SERVER['REDIRECT_URL']原始请求被重定向到的 URL。
$_SERVER['HTTP_REFERER']用户最后一次离开的页面的 URL。这可能不准确,因为用户可以更改或禁用它。
$_SERVER['CONTENT_LENGTH']请求主体的大小(以字节为单位)。
$_SERVER['CONTENT_TYPE']请求主体的内容类型(如 "application/x-www-form-urlencoded" 或 "multipart/form-data")。

这些是一些常见的$_SERVER数组键,以及它们对应的含义。请注意,这些值可能会因服务器配置和请求的不同而有所不同。当然你可以使用print_r($_SERVER)来打印该服务器所有已配置的$_SERVER信息!

PHP超级全局变量$_FILES列表
变量名称变量值含义
$_FILES["name"]上传文件的名称
$_FILES["type"]上传文件的类型
$_FILES["tmp_name"]文件被上传到服务器上的临时文件名
$_FILES["error"]上传文件时可能出现的错误代码
$_FILES["size"]上传文件的大小
$_FILES["tmpDir"]上传文件的临时存储目录

对于$_FILES数组来说,这是一个非常丰富的超级全局变量,因为它包含了关于通过表单上传的文件的信息。$_FILES数组中的键名和对应的值通常在文件上传过程中使用。不过在PHP中超级全局变量(如$_GET、$_POST、$_FILES等)的值在脚本执行期间是动态变化的,所以你需要确保在正确的上下文中使用这些变量。而且,这些信息可能会根据PHP版本的不同而略有差异,因此在使用时最好参考你正在使用的PHP版本的官方文档。

PHP超级全局变量$_ENV列表
变量名称
变量值含义
$_ENV['HTTP_HOST']客户端请求的主机名。
$_ENV['HTTP_USER_AGENT']发起请求的用户代理(通常包含浏览器信息)。
$_ENV['HTTP_ACCEPT']客户端可接受的响应内容类型。
$_ENV['HTTP_ACCEPT_LANGUAGE']客户端首选的语言。
$_ENV['HTTP_ACCEPT_CHARSET']客户端首选的字符集。
$_ENV['REMOTE_ADDR']访问服务器的客户端的IP地址。
$_ENV['REMOTE_PORT']访问服务器的客户端的端口号。
$_ENV['SERVER_ADDR']服务器的IP地址。
$_ENV['SERVER_PORT']服务器端口号。
$_ENV['SERVER_NAME']服务器的名称。
$_ENV['SERVER_SOFTWARE']
 服务器软件名称和版本。
$_ENV['DOCUMENT_ROOT']脚本所在文档根目录。
$_ENV['SCRIPT_FILENAME']当前执行脚本的绝对路径。
$_ENV['QUERY_STRING']查询字符串(当使用 `?` 传递参数时)。
$_ENV['REQUEST_METHOD']客户端请求方法(如GET,POST等)。

请注意:这些只是例子,实际的环境变量可能会更多,且取决于服务器配置。如果需要获取$_ENV数组中所有键名及其对应值,可以使用 print_r() 或 var_dump()函数来打印这个数组。

在PHP中,您可以通过以下方式访问 $_ENV数组中的元素:


  •  

echo $_ENV['VARIABLE_NAME'];


如果您需要确保某个环境变量在您的PHP脚本中可用,您可以使用 putenv()函数在脚本执行之前设置它:


  •  

putenv('VARIABLE_NAME=Value');


如果 $_ENV`数组在您的PHP配置文件(如php.ini)中被禁用,您可以通过修改variables_order指令来启用它。如第二个参考信息中所述,variables_order指令决定了哪些超全局数组在PHP启动时注册,以及它们的注册顺序。在php.ini文件中,您可以将此指令设置为包含 `E`(ENV)的顺序,如下所示:


  •  

variables_order = "EGPCS"


这样,$_ENV数组就会被注册并可以使用。但是你需要知道在PHP中,$_ENV全局数组包含了所有环境变量。环境变量是服务器或运行脚本的操作系统设置的变量,它们可以在脚本中通过getenv()函数访问。由于 $_ENV`数包含的所有环境变量会因服务器配置和操作系统而异,这些值不是固定的,而是取决于运行脚本的具体环境。


欢迎您,来自美国的朋友,您的IP:13.59.127.63,您的网络:Amazon数据中心


PHP笔记排行
随机推荐
猜你喜欢

服务热线

1888888888

要发发发发发发

站长微信公众号

站长微信公众号

分享:

支付宝

微信