我如何从一个url获得多个相同名称的值?

  • 本文关键字:url 一个 php get
  • 更新时间 :
  • 英文 :


我创建了一个使用复选框的表单,方法设置为GET。

结果为example.com/careers/?career_type=val1&career_type=val2

<?= $_GET['career_type']; ?>

只显示val2。

是否可以同时显示两个值?

虽然具有相同名称的多个参数是完全有效的,但PHP不能很好地处理它。你有两个选择。

  1. 将URL更改为数组,例如example.com/careers/?career_type[]=va1&career_type[]=val2。然后,$_GET['career_type']将作为包含val1和val2的数组返回。如果使用表单生成此URL,只需将字段命名为name="career_type[]"

  2. 如果不可能,您可以手动解析查询字符串。这将有相同的效果:

$query = explode('&', $_SERVER['QUERY_STRING']);
$params = [];
foreach ($query as $param) {
[$name, $value] = explode('=', $param, 2);
$params[urldecode($name)][] = urldecode($value);
}
var_dump($params['career_type']);

最新更新