【问题标题】:How to retrieve last part of given path?如何检索给定路径的最后一部分?
【发布时间】:2012-04-24 04:00:34
【问题描述】:

我正在编写目录列表,并想获取最后一个目录的名称。

例子:

/data/henry/files/gallery

我只想获取最后一个目录 gallery

我尝试使用substr('abcdef', 1),但它是静态的。

我想将目录存储到数组中,然后检索最后一个值,但我该怎么做呢?

编辑:

感谢@deceze 提供简单的解决方案。

我的解决方案较长,不推荐:

$dirarray = explode("/",$row['source']);
$total = count($dirarray);
$sharename = $dirarray[($total-1)];

【问题讨论】:

    标签: php string


    【解决方案1】:
    echo basename('/data/henry/files/gallery');
    

    http://php.net/basename

    【讨论】:

    • 哇,这太容易了!谢谢!
    • 我找到了其他解决方案,但它很长;
    • 这就是你应该这样做的方式。
    【解决方案2】:

    使用正则表达式怎么样?假设您的文本在 $text 变量中:

    preg_match_all("|(/[a-z]+)$|", $text, $result);
    

    $result 将包含/gallery

    【讨论】:

    • 这不起作用,在更正错别字后它仍然不适用于/foo/bar-baz/hello/from/pcre_world
    • 已编辑以正确格式化并修复缺少的引号。但是basename() 仍然是一个更好的答案。对于这类常见的操作,PHP 有很多函数;不要总是假设你必须自己做。
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2011-04-24
    • 2013-09-07
    相关资源
    最近更新 更多