如何保留一些URL参数并删除所有其他参数

时间:2015-03-10 09:19:05

标签: php unset

我有一个包含一系列参数的网址:

  

locations.php use_url = ON&安培;邮政编码=阿克明斯特%2C +德文+ EX13 + 5RZ&安培;类别%5B0%5D = 2及半径= 30&安培; checkboxnational = 1&安培;提交=装载+结果...&安培; resultbar = 25&安培;排序栏=距离&安培; LAT = 50.77643440000001&安培; LNG = -2.9810417&安培; swlat = 50.7773526197085&安培; swlng = -2.9814507999999478&安培; nelat = 50.7800505802915&安培; nelng = -2.9749947000000247&安培; outcode的= EX13

我目前正在使用unset()命令删除除一些基本参数之外的所有参数,例如' lat'' lng'' swlat,&#39 ; swlng',通过以下代码:

$url = $_SERVER["REQUEST_URI"];
$x = $url;
$parsed = parse_url($x);
$query = $parsed['query'];
parse_str($query, $params);
unset($params['outcode'],$params['checkboxnational']);
$string = http_build_query($params);

然而,今天早上我已经意识到我的unset()看起来太长了,因为实际上我试图取消设置大约20个参数并且只保留大约5个参数。而且我可能会在URL中添加更多参数,这会增加发生错误的风险。所以我现在要做的就是编写保存这些基本参数的代码,并删除所有其他参数,而不必单独命名所有这些其他参数。这可能吗?

我不介意php或javascript,无论哪种方式。只要它完成工作。我搜索了高低,我能找到的只是想要删除某些参数的人,而不是保持确定并删除所有其他参数。非常感谢。

1 个答案:

答案 0 :(得分:2)

如果你想要的参数总是一样的(我的意思是,键是相同的),那么就这样做:

$myWantedParams = array('first' => $params['first'], 'second' => $params['second'] ... );
unset($params);

不要考虑如何删除参数,只关注你真正需要的东西并把它拿走。