在 Web 应用程序中,URL 通常包含多个参数以将信息传递给 PHP 脚本。然而,PHP 的 $_GET 函数通常只返回给定参数的最后一个值。当 URL 中存在多个同名参数时,这可能会出现问题。
考虑以下示例 URL:
http://example.com/index.php?param1=value1¶m2=value2¶m1=value3
在这种情况下, $_GET['param1'] 将返回“value3”,覆盖之前的值(“value1”)。
要处理此问题,可以使用以下代码片段使用:
$query = explode('&', $_SERVER['QUERY_STRING']); $params = array(); foreach ($query as $param) { // To prevent errors, ensure each element has an equals sign. if (strpos($param, '=') === false) { $param .= '='; } list($name, $value) = explode('=', $param, 2); $params[urldecode($name)][] = urldecode($value); }
此代码将创建一个关联数组,其中每个键对应一个参数名称,每个值都是一个包含与该参数关联的所有值的数组。对于上面的示例 URL,生成的 $params 数组将为:
array( 'param1' => array('value1', 'value3'), 'param2' => array('value2') )
通过使用此方法,您可以轻松访问与 URL 中每个参数关联的所有值,无论参数是否多次出现.
以上是如何从 PHP 中的 URL 检索多个同名参数?的详细内容。更多信息请关注PHP中文网其他相关文章!