我希望从文件路径字符串的末尾获取文件名,比如
$text = "bob/hello/myfile.zip";
我希望能够获得文件名,我猜这将涉及获取最后一个斜杠之后的所有内容作为子字符串。谁能帮助我如何做到这一点是PHP?一个简单的函数,如:
$fileName = getFileName($text);
我希望从文件路径字符串的末尾获取文件名,比如
$text = "bob/hello/myfile.zip";
我希望能够获得文件名,我猜这将涉及获取最后一个斜杠之后的所有内容作为子字符串。谁能帮助我如何做到这一点是PHP?一个简单的函数,如:
$fileName = getFileName($text);
退房basename()
。
对于更一般的需求,启动参数使用负值。
例如
<?php
$str = '001234567890';
echo substr($str,-10,4);
?>
将输出
1234
使用负参数意味着它从结尾的第一个字符开始。
$text = "bob/hello/myfile.zip";
$file_name = end(explode("/", $text));
echo $file_name; // myfile.zip
end()
返回给定数组的最后一个元素。
正如 Daniel 所发布的,对于这个应用程序,您想使用 basename()。对于更一般的需求,strrchr()
完全按照本文标题的要求进行操作。
我想你可以使用 strrpos 找到最后一个'/',然后得到那个子字符串:
$fileName = substr( $text, strrpos( $text, '/' )+1 );
虽然您可能实际上想要检查以确保其中有一个“/”,首先。
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