从网址获取第二个细分

时间:2011-03-28 06:47:44

标签: php

如何在没有斜杠的情况下获取URL中的第二个段? 例如,我有一个像这样的URL

http://foobar/first/second

如何获得“第一”所代表的价值?

4 个答案:

答案 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语句中使用它,根据最终段的值执行您喜欢的任何操作。