$_GET 全局变量与前面介绍的 $_POST 全局变量类似,它是用来接收 form 表单中使用 GET 方法提交的表单数据的,GET 方法是 form 表单中 method 属性的默认方法。使用 GET 方法提交的表单数据会附加到 URL 上,并作为 URL 的一部分发送到服务器端。
在程序的开发过程中,由于 GET 方法提交的数据是附加到 URL 上发送的,因此在 URL 的地址栏中将会显示“URL+用户传递的参数”类型的信息,如下所示:
其中,url 为表单响应地址(如 http://www.cdsy.xyz),name1、name2 为表单元素的名称,value1、value2 为表单元素的值。url和表单元素之间用“?”隔开,而多个表单元素之间用“&”隔开,每个表单元素的格式都是“name=value”,固定不变。
由于不同的浏览器对 URL 的长度都有不同的限制,所以在使用 GET 方法提交数据时,一定要注意数据量的大小,如果数据的长度超过了浏览器的限制,数据将被截断,从而导致数据丢失。主流浏览器对 URL 长度的限制如下表所示:
游览器 | 最大长度(字符数) |
---|---|
Internet Explorer | 2083 |
Firefox | 65536 |
chrome | 8182 |
Safari | 80000 |
Opera | 190000 |
$_GET 全局变量与 $_POST 的结构相似,同样是一个关联数组,数组的键名为表单元素 name 的值,数组的值为对应表单的值。$_GET 不仅仅可以获取 form 表单的数据,只要是 URL 中的参数都可以使用 $_GET 获取。
另外一点需要注意的是:在 PHP 中使用 $_POST 或者 $_GET 获取表单数据时,是区分大小写的,所以在开发过程中应该注意不能忽略了字母的大小写。
【示例】使用 $_GET 全局变量获取 form 表单中传输的数据。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>城东书院</title>
</head>
<body>
<form action="index.php" method="get">
姓名:<input type="text" name="name" placeholder="请输入姓名"><br>
性别:<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女<br>
爱好:<input type="checkbox" name="hobby[]" value="read">阅读
<input type="checkbox" name="hobby[]" value="travel">旅游
<input type="checkbox" name="hobby[]" value="sport">运动
<input type="checkbox" name="hobby[]" value="internet">上网<br>
职业:<select name="job">
<option value="coder">程序员</option>
<option value="teacher">教师</option>
<option value="doctor">医生</option>
<option value="other">其它</option>
</select><br>
<input type="submit" value="提交">  <input type="reset" value="重置">
</form>
</body>
</html>
<?php
if(!empty($_GET)){
echo '提交成功!<br><pre>';
var_dump($_GET);
}
?>