我需要一个正则表达式字符串来从不同类型的网址中提取参数,例如使用$_SERVER["REQUEST_URI"]
:
字符串1:“/ news / page / 4”或字符串2:“/ news / weekly / page / 4”
我需要提取没有最后/page/[ID]
的字符串,我的意思是仅/news/page
或/news/weekly/
等。
我怎样才能使用preg_replace
?
谢谢。
答案 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];