【发布时间】:2013-06-21 16:48:01
【问题描述】:
我有这个网址 /index.php?color=blue&size=xl
为了摆脱 get 参数,我使用以下代码:
$done = preg_replace('/(.*)(\?|&)color=[^&]*(?(1)&|)?/i', "$1", $url);
echo $done;
"output: index.phpsize=xl"
现在我也需要清理“尺寸”部分。已经尝试了两行 preg_replace,但它不起作用。
$done = preg_replace('/(.*)(\?|&)color=[^&]*(?(1)&|)?/i', "$1", $url);
echo $done;
$done2 = preg_replace('/(.*)(\?|&)size=[^&]*(?(1)&|)?/i', "$1", $done);
编辑:我真的需要一个解决方案,我可以清理确切的参数“颜色”或“大小”。
有时我只会删除其中一个。
编辑2: 有这个解决方案:
// Url is: index.php?color=black&size=xl&price=20
function removeqsvar($url, $varname) {
return preg_replace('/([?&])'.$varname.'=[^&]+(&|$)/','$1',$url);
}
$url = removeqsvar($url, color);
echo removeqsvar($url, price);
// will output: index.php?size=xl
谢谢大家。
【问题讨论】:
-
你知道吗,如何从 3 中删除 2 个变量?
-
当然,看我的回答:stackoverflow.com/a/17240988/862594
标签: php get preg-replace