使用PHP从字符串中找到文件名

8
public/images/portfolio/i-vis/1.jpg

我该如何使用php删除路径,而不管文件名是什么?
3个回答

32

请看basename()

$path = 'public/images/portfolio/i-vis/1.jpg'
$name = basename($path); // $name == '1.jpg'

另外,dirname() 取得另一部分

$dir = dirname($path); // $dir == 'public/images/portfolio/i-vis'

如果你需要更多信息,可以查看pathinfo()函数。

$info = pathinfo($path);
var_dump($info);

生成

array(4) {
    ["dirname"]=>
    string(29) "public/images/portfolio/i-vis"
    ["basename"]=>
    string(5) "1.jpg"
    ["extension"]=>
    string(3) "jpg"
    ["filename"]=>
    string(1) "1"
}

所以$info['filename']会返回不带扩展名的文件。

这很酷,我们可以再进一步寻找没有扩展名的文件名吗? - Andy

2
echo basename($string);

请看basename函数。


1

另一种解决方案。只是一堆爆炸

$str='public/images/portfolio/i-vis/1.jpg';
$s = end(explode("/",$str));
print "filename " . $s."\n";
$e = explode(".", $s );
print "without extension: $e[0]\n";

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接