📜  从 url php 中删除获取参数(1)

📅  最后修改于: 2023-12-03 15:36:15.254000             🧑  作者: Mango

从 URL PHP 中删除获取参数

在编写 PHP 程序时,经常需要从 URL 中获取参数供程序使用。但有时候我们需要在程序中删除某些参数。下面介绍一些实现方式。

方法一:使用 parse_url 和 http_build_query 函数

这种方法需要将 URL 分解成各个部分,并将查询字符串解析为数组,然后使用 unset 函数删除指定参数,再使用 http_build_query 函数将数组转换回字符串,最后将 URL 重新构建。

$url = "http://example.com/page.php?id=123&name=john&age=25";
$queryStr = parse_url($url, PHP_URL_QUERY); // 获取查询字符串
parse_str($queryStr, $queryArr); // 将查询字符串解析为数组
unset($queryArr['id']); // 删除 id 参数
$newQueryStr = http_build_query($queryArr); // 将数组转换回字符串
$newUrl = str_replace($queryStr, $newQueryStr, $url); // 重新构建 URL
echo $newUrl;

输出结果为 http://example.com/page.php?name=john&age=25

此方法实现比较繁琐,但灵活性较高,可以在数组中添加、修改或删除多个参数。

方法二:使用 preg_replace 函数

这种方法使用正则表达式匹配待删除参数,并将其删除。

$url = "http://example.com/page.php?id=123&name=john&age=25";
$param = "id";
$newUrl = preg_replace('/(&|\?)'.$param.'=[^&]*$/i', '', $url);
echo $newUrl;

输出结果为 http://example.com/page.php?name=john&age=25

此方法适用于只需要删除一个参数的情况,且需要注意 URL 中参数顺序的影响。

总结

以上两种方法都可以实现删除 URL 中的特定参数,选择哪种方法取决于具体需求。在实际应用中可以根据情况进行选择和修改。