我正在尝试使用PHP preg_replace()从URL中删除一些参数。例如,我需要从下面的网址中删除a[]=1
。
$my_url = 'www.myhost.com/filter.php?a[]=1&a[]=12&a[]=13&a[]=14'
所以我正在使用:
$without_filter = preg_replace("/(&)?a\[\]=1/", '', $my_url);
我只想删除a[]=1
,但它会从其他参数中删除包含a[]=1
的部分,所以我得到了:
www.myhost.com/filter.php?234
有人可以帮我解决这个问题吗?
答案 0 :(得分:3)
怎么样:/a\[\]=1(&|\b)/
如果它后跟a[]=1
或字符串结尾,它将仅捕获&
。
答案 1 :(得分:1)
按照preg_replace的手册页,您可以执行以下操作:
$without_filter = preg_replace("/\&(a\[\]=1)(\&|$)/", '\2', $my_url);
或者......您可以随时使用preg_replace_callback
答案 2 :(得分:0)
使用$limit
的{{1}}参数并将其设置为preg_replace
,这应该只替换一次。假设您的参数始终以这种方式排序:
1