Php 从url获取第二段
如何在没有斜杠的情况下获取URL中的第二段? 例如,我有一个像这样的URLPhp 从url获取第二段,php,Php,如何在没有斜杠的情况下获取URL中的第二段? 例如,我有一个像这样的URL http://foobar/first/second 如何获取“first”所在的值?用于从URL获取路径,然后用于将其拆分为段: $uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); $uri_segments = explode('/', $uri_path); echo $uri_segments[0]; // for www.example
http://foobar/first/second
如何获取“first”所在的值?用于从URL获取路径,然后用于将其拆分为段:
$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'
以下是我以冗长的方式抓住最后一段,灵感来自秋葵的回答:
// 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语句中使用它,根据最后一段的值执行任何您喜欢的操作 以你为例
将导致当前段:第二个
您可以更改numSegments-2以获得舒尔的第一个,这是重复的,请看这里您确定您有完整的url,而不仅仅是请求uri
/first/second
?你从哪里得到这个url?@poelinca你没有读这个问题,因为某种原因,我不得不把它改成echo$uri_段[1]代码>否则,这是完美的解决方案!这不符合预期,第一个数组值将为空。对于我的,这是有效的:$segments=explode(“/”,trim(parse_url($\u SERVER['REQUEST_URI'],PHP_url_PATH),“/”);回音段;当在Wordpress[0]之外工作时,这是一种方法,但当在Wordpress[0]之内工作时,我需要添加[1]-在WP之外感兴趣的是所需的algo[1]。这应该是正确的答案,因为正确使用了trim()。
// finds the last URL segment
$urlArray = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$segments = explode('/', $urlArray);
$numSegments = count($segments);
$currentSegment = $segments[$numSegments - 1];
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
$numSegments = count($segments);
$currentSegment = $segments[$numSegments - 1];
echo 'Current Segment: ' , $currentSegment;