从PHP的字符串末尾删除一个字符串和一个数字

时间:2014-12-29 13:14:10

标签: php regex preg-match

非常新的PHP,并试图找出一些我无法理解的东西。

我在下面有一个网址,我要删除& page_number = x。必须使用函数删除page_number变量和数字,该函数将始终位于字符串的末尾。

  

http://url.com/search/?location=london&page_number=1

我尝试了几个版本的preg_replace但我没有运气。

由于

4 个答案:

答案 0 :(得分:1)

&page_numer=\d+$

试试这个。empty string

参见演示。

https://regex101.com/r/gX5qF3/10

答案 1 :(得分:1)

如果是当前页面,可以这样做:

 unset($_GET['page_number']);
 $newStr='?'.http_build_query($_GET); 

答案 2 :(得分:1)

$str = 'http://url.com/search/?location=london&page_number=1';
$str = preg_replace('/[?&]page_number=\d+/', '', $str);

答案 3 :(得分:0)

以下代码应该删除它而不使用正则表达式或昂贵的explode

$str = 'http://url.com/search/?location=london&page_number=1';
$cropped = substr($str, 0, strrpos($str, '&page_number='));
// $cropped is 'http://url.com/search/?location=london'

首先,它使用strrpos查找& page_number =的最后一次出现的位置,然后使用substr将字符串裁剪到该出现位置。

注意:这假定您要删除的参数位于末尾。