我的$_SERVER['REQUEST_URI']
类似于/ advt / upload / siteid / 1。我需要从指定的路径中检索“1”。我怎么能做preg match或其他什么?
谢谢!
答案 0 :(得分:3)
您想要最后一个路段吗?简单!
$lastPathSegment = basename($_SERVER['REQUEST_URI']);
您可能希望使用rtrim($_SERVER['REQUEST_URI'], '/')
来确保路径没有尾部斜杠。
还有很多其他方法可以做到这一点。假设$uri = rtrim($_SERVER['REQUEST_URI'], '/')
...
$lastPathSegment = end(explode("/", $uri));
$lastPathSegment = ltrim(strrchr($uri, "/"), "/");
$lastPathSegment = substr($uri, 1 + strrpos($uri, "/"));
$lastPathSegment = preg_replace('/^.+\//', '', $uri);
......还有更多。
答案 1 :(得分:1)
如果您想要最后一段:
$endSegment = basename($_SERVER['REQUEST_URI']);
否则,如果它不是最后一个,但你知道值的索引
$pieces = explode("/", $_SERVER['REQUEST_URI']);
$selectedSegment = $pieces[3];
答案 2 :(得分:0)
您可以使用拆分功能,即
list($sec1,$sect2,$sect3,$sect4) = explode("/", $_SERVER['REQUEST_URI']);
其中$ sect4是你的数字,或者只是一个直的数组
$uri = explode("/", $_SERVER['REQUEST_URI']);
$num = $uri[3];
您可能还想查看正则表达式
preg_match('/(?P<sect1>\w+)\(?P<sec2>\w+)\(?P<sect3>\w+)\ (?P<digit>\d+)/', $_SERVER['REQUEST_URI'], $matches);
print_r($matches);
有关preg matches preg_match
的更多信息,请参阅此链接