我有一个类似于?supercategory=1&category=14&page=2
的字符串,我有一个函数可以从该字符串中删除一个选定的过滤器然后返回它。
我的正则表达式为preg_replace('/(category=[0-9]+)&?/', '', $queryString)
显然上面的代码与supercategory
匹配,但我希望匹配字符串中的类别,而不是超类别
我该如何做到这一点?
我想提一下,字符串中category
和supercategory
的位置可以更改。
由于
答案 0 :(得分:1)
使用PHP的内置parse_str(),取消设置()category
元素,然后使用http_build_query(),这不是试图使用正则表达式,而是更简单重新创建查询字符串
$dataString = 'supercategory=1&category=14&page=2';
parse_str($dataString, $urlArguments);
if (isset($urlArguments['category'])) {
unset($urlArguments['category']);
}
$dataString = http_build_query($urlArguments);
var_dump($dataString);