PHP Regex - 从重写的URL获取查询字符串参数

时间:2012-05-21 18:42:33

标签: php regex

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

  

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

我需要提取没有最后/page/[ID]的字符串,我的意思是仅/news/page/news/weekly/等。 我怎样才能使用preg_replace

谢谢。

4 个答案:

答案 0 :(得分:2)

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

$delimiter = '/';
$parts     = explode($delimiter, $_SERVER["REQUEST_URI"]);
$whatINeed = $parts[0] . $delimiter . $parts[1];

答案 1 :(得分:0)

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

答案 2 :(得分:0)

regexp解决方案:

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

输出:

/news/weekly

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

$parts = explode('/', $_SERVER["REQUEST_URI"]);
$url = $parts[0].'/'.$parts[1];

答案 3 :(得分:0)

尝试:

$foo = explode('/', $_SERVER["REQUEST_URI"]);
$resultant_url = $foo[0].'/'.$foo[1];