如何在没有斜杠的情况下获取URL中的第二个段? 例如,我有一个像这样的URL
http://foobar/first/second
如何获得“第一”所代表的价值?
答案 0 :(得分:56)
使用parse_url
从网址获取路径,然后使用explode
将其拆分为细分:
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
echo $uri_segments[0]; // for www.example.com/user/account you will get 'user'
答案 1 :(得分:13)
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
答案 2 :(得分:3)
举个例子http://domain.com/first/second
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
$numSegments = count($segments);
$currentSegment = $segments[$numSegments - 1];
echo 'Current Segment: ' , $currentSegment;
会导致当前细分:第二
您可以更改numSegments -2以获取第一个
答案 3 :(得分:2)
这是我汲取最后一段的啰嗦方式,灵感来自Gumbo的回答:
// finds the last URL segment
$urlArray = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', $urlArray);
$numSegments = count($segments);
$currentSegment = $segments[$numSegments - 1];
如果你愿意的话,你可以把它归结为两行,但是这样就可以很明显地表达你的想法,即使没有评论也是如此。
获得$currentSegment
后,您可以将其回显或在if / else或switch语句中使用它,根据最终段的值执行您喜欢的任何操作。