首先使用 $_GET 获取 URL 中的参数,再通过 isset()检查参数是否存在以避免未定义索引错误,接着利用 filter_input()对数据进行过滤和验证以提升安全性,最后支持处理如 tags[]=php形式的数组参数并用 is_array()校验类型。

如果您在开发 Web 应用时需要从 URL 中提取用户提交的数据,通常会使用 PHP 的超 全局变量 来获取 GET 请求中的参数。这些参数以 键值对 的形式附加在 URL 后面,通过解析可以轻松获取用户传递的信息。
本文运行环境:macBook Pro,macOS Sonoma
一、使用 $_GET 获取 URL 参数
$_GET 是 PHP 内置的超全局数组,用于收集通过 URL 传递的 GET 请求数据。当 浏览器 发送一个带有查询 字符串 的http GET 请求时,PHP 会自动将这些参数解析并填充到 $_GET 数组中。
1、在 浏览器 地址栏输入类似 http://example.com/page.php?name=Tom&age=25 的 URL。
立即学习“PHP 免费学习笔记(深入)”;
2、在 page.php 文件中使用 $_GET[‘name’] 获取 name 参数的值。
3、使用 $_GET[‘age’] 获取 age 参数的值。
4、可通过 var_dump($_GET); 查看所有接收到的 GET 参数。
二、检查参数是否存在
直接访问 $_GET 中的键可能导致未定义索引错误,因此在获取值之前应先验证参数是否存在。
1、使用 isset($_GET[‘name’]) 判断 name 参数是否被传递。
2、如果条件成立,则可安全地读取 $_GET[‘name’]的值。
3、对于可能缺失的参数,可结合 三元 运算符 设置默认值,例如:$name = isset($_GET[‘name’]) ? $_GET[‘name’] : ‘guest’;
三、过滤和验证 GET 参数
由于 GET 参数来自客户端,必须对其进行过滤和验证以防止安全漏洞,如 xss 或sql注入。
1、使用 filter_input() 函数过滤输入,例如:$email = filter_input(INPUT_GET, ’email’, FILTER_VALIDATE_EMAIL);
2、若需清理字符串,可使用 FILTER_SANITIZE_STRING 过滤器(注意:该过滤器在较新 PHP 版本中已被弃用,建议使用其他方式)。
3、对数值型参数使用 FILTER_VALIDATE_INT 确保其为整数。
四、处理数组形式的 GET 参数
URL 中可以通过方括号语法传递数组类型的数据,PHP 会自动将其解析为数组结构。
1、构造 URL 如 http://example.com/search.php?tags[]=php&tags[]=mysql。
2、在脚本中通过 $_GET[‘tags’] 获取一个包含 ’php’ 和 ’mysql’ 的数组。
4、确保在访问前使用 is_array()检查是否成功解析为数组。