我$_SERVER['REQUEST_URI']
的类似于 /advt/upload/siteid/1。我需要从指定的路径中检索那个“1”。我怎样才能进行预赛或其他任何事情?
谢谢!
你想要最后一个路径段吗?简单的!
$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);
键盘。
...还有很多。
如果你想要最后一段:
$endSegment = basename($_SERVER['REQUEST_URI']);
否则如果不是最后一个,但你知道值的索引
$pieces = explode("/", $_SERVER['REQUEST_URI']);
$selectedSegment = $pieces[3];
您可以使用拆分功能,即
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 匹配的更多信息,请参见此链接preg_match