按变量修剪URL

时间:2014-12-13 13:07:12

标签: php regex str-replace

嗨我有这样的链接:

mypage.php?product=3&page=1

我想删除& page = 1,& page = 2,& page = 5等等。 我试过这个,但我认为这不对。

str_replace('/(\\?|&)page=.*?(&|$)/', '', $link);

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

str_replace()不能使用正则表达式,因此您需要使用preg_replace()代替:

$url = preg_replace('/[?&]page=[^&]+/', '', $url);

这里有两个变化:首先,当你只针对单个符号时(不必在括号内转义?是一个很好的奖励),最好使用一个字符类而不是替换,第二, [^&]+('匹配任意数量的非&字符')构造比.+?(&|$)构造更直接,更易读。