首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得URL中的最后一条路径?

如何获得URL中的最后一条路径?
EN

Stack Overflow用户
提问于 2010-02-16 13:47:38
回答 9查看 85.6K关注 0票数 28

我想得到URL中的最后一个路径段:

  • http://blabla/bla/wce/news.php
  • http://blabla/blablabla/dut2a/news.php

例如,在这两个URL中,我想得到路径段:'wce‘和'dut2a’。

我试着使用$_SERVER['REQUEST_URI'],但是我得到了整个URL路径。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-02-16 13:51:44

尝试:

代码语言:javascript
复制
$url = 'http://blabla/blablabla/dut2a/news.php';
$tokens = explode('/', $url);
echo $tokens[sizeof($tokens)-2];

假设$tokens至少有2个元素。

票数 53
EN

Stack Overflow用户

发布于 2010-02-16 13:53:13

试试这个:

代码语言:javascript
复制
function getLastPathSegment($url) {
    $path = parse_url($url, PHP_URL_PATH); // to get the path from a whole URL
    $pathTrimmed = trim($path, '/'); // normalise with no leading or trailing slash
    $pathTokens = explode('/', $pathTrimmed); // get segments delimited by a slash

    if (substr($path, -1) !== '/') {
        array_pop($pathTokens);
    }
    return end($pathTokens); // get the last segment
}

    echo getLastPathSegment($_SERVER['REQUEST_URI']);

我还用评论中的几个URL测试了它。我必须假设所有路径都以斜杠结尾,因为我无法识别/bob是目录还是文件。这将假设它是一个文件,除非它也有一个拖尾斜杠。

代码语言:javascript
复制
echo getLastPathSegment('http://server.com/bla/wce/news.php'); // wce

echo getLastPathSegment('http://server.com/bla/wce/'); // wce

echo getLastPathSegment('http://server.com/bla/wce'); // bla
票数 30
EN

Stack Overflow用户

发布于 2010-02-16 16:18:17

这很简单

代码语言:javascript
复制
<?php
 echo basename(dirname($url)); // if your url/path includes a file
 echo basename($url); // if your url/path does not include a file
?>
  • basename将返回path的尾随名称组件
  • dirname将返回父目录的路径

http://php.net/manual/en/function.dirname.php

http://php.net/manual/en/function.basename.php

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2273280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档