$_SERVER
$_SERVER
是一个包含了注入头信息(header)、路径(path)及脚本位置(script locations)等信息的数组,这个数组中的项目由web服务器创建。不能保证每个服务器都会提供全部项目,服务器可能会忽略一些,或者提供一些没有在此处列举出来的项目。
数组元素 | 说明 |
---|---|
$_SERVER[‘PHP_SELF’] | 当前执行脚本的文件名,与document root有关。如,在地址为http://example.com/text.php/foo.bar的脚本中使用$_SERVER[‘PHP_SELF’]将得到/test.php/foo.bar |
$_SERVER[‘SERVER_ADDR’] | 当前运行脚本所在服务器的IP地址 |
$_SERVER[‘SERVER_NAME’] | 当前运行脚本所在服务器的主机名。如果脚本运行与虚拟主机中,该名称就由那个虚拟主机所设置的值决定。 |
$_SERVER[‘SERVER_PROTOCOL’] | 请求页面时通信协议的名称和版本。如:“HTTP/1.0” |
$_SERVER[‘REQUEST_METHOD’] | 访问页面使用的请求方法,如GET、HEAD、POST、PUT |
$_SERVER[‘DOCUMENT_ROOT’] | 当前运行脚本所在的文档根目录。在服务器配置文件中定义 |
$_SERVER[‘HTTP_ACCEPT_LANGUAGE’] | 当前请求头中Accept-Language项的内容(如果存在)。如:“en” |
$_SERVER[‘REMOTE_ADDR’] | 浏览当前页面的用户IP地址,注意与$_SERVER[‘SERVER_ADDR’]的区别 |
$_SERVER[‘SCRIPT_FILENAME’] | 当前执行脚本的绝对路径 |
$_SERVER[‘SCRIPT_NAME’] | 包含当前脚本的路径 |
$_SERVER[‘REQUEST_URI’] | URI用来指定要访问的页面。例如:“/index.html” |
$_SERVER[‘PATH_INFO’] | 包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(querystring)之前的路径信息(如果存在)。 |
$_GET
和$_POST
数组
$_GET
和$_POST
是PHP中十分重要的两个数组,在开发过程中,$_GET
和$_POST
像灵魂一样无处不在。
页面之间传递信息可通过GET和POST两种方式完成。$_GET
和$_POST
可分别用来接收这两种方式传递过来的数据。
【示例】
创建一个index.html文件,文件代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>GET测试</title>
</head>
<body>
<form action="get.php" method="get">
姓名:<input type="text" name="name">
电话:<input type="text" name="phone">
<input type="submit" value="提交">
</form>
</body>
</html>
然后创建get.php文件来处理来自index.html提交过来的数据:
<?php
echo "<pre>get method:<br />";
print_r($_GET);
echo "</pre>";
?>
在浏览器中打开index.html得到如下页面:
提交该页面后,得到输出结果:
可以看到$_GET
数组中包含了我们输入的数据。
修改index.html文件中action=“post.php” method=“post”,然后新建post.php,代码如下:
<?php
echo "<pre>post method:<br />";
print_r($_PSOT);
echo "</pre>";
?>
可以得到相同的结果。
$_FILES
数组
$_FILES
数组用于获取通过POST方法上传文件的相关信息,如果为单个文件上传,那么该数组为二维数组,如果为多个文件上传,那么该数组为三维数组。
【示例】
建立一个file.html演示上传文件,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>FILES测试</title>
</head>
<body>
<form enctype="multipart/form-data" action="file.php" method="POST">
上传文件:<input name="userfile" type="file">
<input type="submit" value="上传">
</form>
</body>
</html>
新建一个用于接收文件信息的PHP文件file.php,代码如下:
<?php
echo "<pre>";
print_r($_FILES);
echo "</pre>"
?>
在file.html页面选择文件后,单击上传按钮,将会在页面输出以下信息:
$_SESSION
和$_COOKIE
数组
$_COOKIE[]
全局数组存储了通过HTTP COOKIE传递到脚本的信息,PHP可通过setcookie()
函数设置COOKIE的值,用$_COOKIE[]
数组接收COOKIE的值,$_COOKIE[]
数组的索引为COOKIE的名称。
$_SESSION[]
数组用于获取会话变量的相关信息。
$_REQUEST[]
数组
默认情况下,$_REQUEST[]
数组包含了$_GET
、$_POST
和$_COOKIE
的数组。