使用REQUEST_URI的Preg_replace

时间:2015-06-22 12:28:09

标签: php regex

我正在尝试替换当前网址中的数字。

然而,当我var_dump($url)我得到NULL时,当我var_dump($_SERVER['REQUEST_URI'])时,我得到了实际的网址。

为什么我会得到NULL?我是否正确使用preg_replace

  $page = 2;
  $nextPage = $page + 1;
  $url = $_SERVER['REQUEST_URI'];
  $nextUrl = preg_replace('[0-9].html', $nextPage, $url);

1 个答案:

答案 0 :(得分:0)

您错误地使用preg_replace,因为:

  • 您的模式必须包含分隔符
  • 如果要匹配文字点,则必须转义点。

您必须在.html之前更换号码。我建议对此进行预测,并在扩展前捕获所有最终数字,我还会使用+量词来匹配1位或更多位数:

$page = 2;
$nextPage = $page + 1;
$url = $_SERVER['REQUEST_URI'];
$nextUrl = preg_replace('#[0-9]+(?=\.html)#i', $nextPage, $url);

这是regex demo