php - 来自文本末尾的子字符串

时间:2010-06-30 14:02:54

标签: php

我希望从一行文本的末尾获取子字符串,比如说

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

我希望能够获取文件名,我想这将涉及在最后一个斜杠之后将所有内容作为子字符串,任何人都可以帮助我如何做到这一点是PHP?像

这样的简单函数
$fileName = getFileName($text);

7 个答案:

答案 0 :(得分:19)

查看basename()

答案 1 :(得分:10)

$text = "bob/hello/myfile.zip";
$file_name = end(explode("/", $text));
echo $file_name; // myfile.zip

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

答案 2 :(得分:8)

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

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

将输出
1234

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

答案 3 :(得分:1)

正如Daniel所说,对于这个应用程序,你想使用basename()。对于更一般的需求,strrchr()完全符合本文标题的要求。

http://us4.php.net/strrchr

答案 4 :(得分:0)

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

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

虽然你可能真的想检查以确保那里有一个“/”,首先。

答案 5 :(得分:0)

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

echo getSubstringFromEnd("My long text", 4); // text

答案 6 :(得分:-1)

您可以使用-1作为第三个参数的值

echo substr("123456789", 0, -1); 

// OUTPUT : 12345678

$string = "123456789"; // string
$num =  2; // Number of Caractérers to Display from right to left

$count = strlen($string); // Count string

echo substr($string, $count - $num); 

// OUTPUT : 89