-2

我需要一个正则表达式字符串来从不同类型的 url 中提取参数,例如使用$_SERVER["REQUEST_URI"]

字符串 1:“/news/page/4”或字符串 2:“/news/weekly/page/4”

我需要在没有 last 的情况下提取字符串/page/[ID],我的意思是只有/news/pageor/news/weekly/等​​。我该怎么做preg_replace

谢谢你。

4

4 回答 4

2

您可以使用explode()代替正则表达式:

$delimiter = '/';
$parts     = explode($delimiter, $_SERVER["REQUEST_URI"]);
$whatINeed = $parts[0] . $delimiter . $parts[1];
于 2012-05-21T18:45:35.960 回答
0

你应该可以使用:[A-Za-z/]+ 但是它会比只使用 substr 慢。编辑:不是 substr,而是爆炸。

于 2012-05-21T18:49:32.230 回答
0

正则表达式解决方案:

echo preg_replace('/^([\w\W]*)\/page\/\d*/','$1','/news/weekly/page/4');

输出:

/news/weekly

但你应该使用爆炸解决方案:

$parts = explode('/', $_SERVER["REQUEST_URI"]);
$url = $parts[0].'/'.$parts[1];
于 2012-05-21T18:52:17.143 回答
0

尝试:

$foo = explode('/', $_SERVER["REQUEST_URI"]);
$resultant_url = $foo[0].'/'.$foo[1];
于 2012-05-21T18:55:16.380 回答