13

我希望从文件路径字符串的末尾获取文件名,比如

$text = "bob/hello/myfile.zip";

我希望能够获得文件名,我猜这将涉及获取最后一个斜杠之后的所有内容作为子字符串。谁能帮助我如何做到这一点是PHP?一个简单的函数,如:

$fileName = getFileName($text);
4

6 回答 6

20

退房basename()

于 2010-06-30T14:03:38.000 回答
13

对于更一般的需求,启动参数使用负值。
例如

<?php
$str = '001234567890';
echo substr($str,-10,4);
?>

将输出
1234

使用负参数意味着它从结尾的第一个字符开始。

于 2013-01-03T06:55:26.483 回答
11
$text = "bob/hello/myfile.zip";
$file_name = end(explode("/", $text));
echo $file_name; // myfile.zip

end()返回给定数组的最后一个元素。

于 2010-06-30T14:08:15.440 回答
1

正如 Daniel 所发布的,对于这个应用程序,您想使用 basename()。对于更一般的需求,strrchr()完全按照本文标题的要求进行操作。

http://us4.php.net/strrchr

于 2010-06-30T14:08:34.287 回答
0

我想你可以使用 strrpos 找到最后一个'/',然后得到那个子字符串:

$fileName = substr( $text, strrpos( $text, '/' )+1 );

虽然您可能实际上想要检查以确保其中有一个“/”,首先。

于 2010-06-30T14:07:14.977 回答
-2
function getSubstringFromEnd(string $string, int $length)
{
    return substr($string, strlen($string) - $length, $length);
}

function removeSubstringFromEnd(string $string, int $length)
{
    return substr($string, 0, strlen($string) - $length);
}

echo getSubstringFromEnd("My long text", 4); // text
echo removeSubstringFromEnd("My long text", 4); // My long
于 2019-11-05T09:35:38.880 回答