PHP 几个超级全局变量
了解更多请访问https://www.runoob.com/php/php-superglobals.html
超级全局变量在PHP 4.1.0之后被启用, 是PHP系统中自带的变量,在一个脚本的全部作用域中都可用。
一、PHP $GLOBALS
$GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。
$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
<?php
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
以上实例中 z 是一个$GLOBALS数组中的超级全局变量,该变量同样可以在函数外访问。
二、PHP $_SERVER
$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。
<?php
echo $_SERVER['PHP_SELF'];//当前执行脚本的文件路径和文件名
echo "<br>";
echo $_SERVER['SERVER_NAME'];//执行当前文件所在服务器的主机名
echo "<br>";
echo $_SERVER['HTTP_HOST'];//请求当前头中的HOST项的内容,如果存在的话
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];//用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];//当前脚本的路径
echo "<br>";
echo $_SERVER['SERVER_ADDR'];//当前运行脚本所在的服务器的 IP 地址。
echo "<br>";
echo $_SERVER['REMOTE_ADDR'];//浏览当前页面的用户的 IP 地址。
?>
三、PHP $_REQUEST
PHP $_REQUEST 用于收集HTML表单提交的数据。
<?php
$name = $_REQUEST['name'];
echo '通过超级全局变量 $_REQUEST 来收集表单中的 input 字段数据:'.$name;
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP $_REQUEST</title>
</head>
<body>
<form action="" method="post">
姓名:<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
四、PHP $_POST
PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:”method=”post”。
<?php
$name = $_POST['name'];
echo '通过超级全局变量 $_POST 来收集表单中的 input 字段数据:'.$name;
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP $_POST</title>
</head>
<body>
<form action="" method="post">
姓名:<input type="text" name="name">
<input type="submit" value="提交">
</form>
</body>
</html>
五、PHP $_GET
PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:”method=”get”。
$_GET 也可以收集URL中发送的数据。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP $_GET</title>
</head>
<body>
<a href="index.php?name=zhangsan">点我</a>
//或者
<form action="" method="get">
姓名:<input type="text" name="name">
<input type="submit" value="提交">
</form>
<?php
$name = $_GET['name'];
echo '通过超级全局变量 $_GET 来收集表单中的 input 字段数据:'.$name;
?>
</body>
</html>
六、PHP $_FILES
可以从客户计算机向远程服务器上传文件。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>PHP $_GET</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<label for="file">文件上传:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="提交" />
</form>
<?php
//创建上传脚本
if ($_FILES["file"]["error"] > 0)
{
echo "错误信息: " . $_FILES["file"]["error"] . "<br />"; //由文件上传导致的错误代码
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />"; // 被上传文件的名称
echo "Type: " . $_FILES["file"]["type"] . "<br />"; // 被上传文件的类型
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />"; //被上传文件的大小,以字节计
echo "Stored in: " . $_FILES["file"]["tmp_name"]; //存储在服务器的文件的临时副本的名称
}
?>
</body>
</html>
注意
<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 “multipart/form-data”。
<input> 标签的 type=”file” 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。