我有這個網址/index.php?color=blue &大小= XLpreg_replace函數的GET參數 - /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);
編輯:我真的需要一個解決方案,我可以清理確切的參數「顏色」或「大小」。
有時我只會刪除其中的一個。
EDIT2: 有此解決方案:
// 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
謝謝大家。
可能重複(http://stackoverflow.com/questions/1251582/beautiful-way-to-remove-get-variables-with-php) – nickb
你知道嗎,如何從3中刪除2個變量? – mistertodd
當然,請參閱我的回答:http://stackoverflow.com/a/17240988/862594 – nickb