我在这里使用答案https://stackoverflow.com/a/27689796/3842368从网址中删除了几个参数。我认为它有效,直到今天我发现如果我定义了多个参数,unset()无效。
我的PHP代码是:
$url = $_SERVER["REQUEST_URI"];
$x = $url;
$parsed = parse_url($x);
$query = $parsed['query'];
parse_str($query, $params);
unset($params['qdef, qval1']);
$string = http_build_query($params);
$ params使用print_r生成以下数组:
数组([use_url] => on [zipcode] => Axminster,Devon EX13 5RZ [categories] =>数组([0] => 2)[radius] => 0 [checkboxnational] = > 1 [提交] =>加载结果... [yesq] => y [qdef] => 2 [qval1] => 100.00 [qval2] => 525.00 [调料] => 1 [ slider-value1] => 0 [slider-value2] => 70 [resultbar] => 25 [sortbar] =>距离[lat] => 50.77643440000001 [lng] => -2.9810417 [swlat] = > 50.7773526197085 [swlng] => -2.9814507999999478 [nelat] => 50.7800505802915 [nelng] => -2.9749947000000247 [outcode] => EX13)1
所以我遇到的问题是,如果我写unset($params['qdef']);
,则会从网址中删除qdef,但如果我写unset($params['qdef, qval1']);
,则不会删除任何内容。我尝试用逗号分隔它们,将每个参数括在'[]'中,没有任何效果。我已经尝试了很多方法在unset()命令中定义参数,但没有任何作用。
有什么想法吗?
答案 0 :(得分:1)
$params['qdef']
和$params['qval1']
是数组中的单独元素
使用
unset($params['qdef'], $params['qval1']);
单独取消设置
unset($params['qdef, qval1']);
尝试使用'qdef, qval1'