2

$_SERVER['REQUEST_URI']的类似于 /advt/upload/siteid/1。我需要从指定的路径中检索那个“1”。我怎样才能进行预赛或其他任何事情?

谢谢!

4

3 回答 3

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);

键盘

...还有很多。

于 2012-06-01T01:23:33.407 回答
1

如果你想要最后一段:

$endSegment = basename($_SERVER['REQUEST_URI']);

否则如果不是最后一个,但你知道值的索引

$pieces = explode("/", $_SERVER['REQUEST_URI']);

$selectedSegment = $pieces[3];
于 2012-06-01T01:26:01.767 回答
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 匹配的更多信息,请参见此链接preg_match

于 2012-06-01T01:29:18.490 回答