我正在访问 SPLFileInfo 对象中的多个文件。我找到了一种获取路径、文件名甚至文件扩展名的方法。有没有办法获取不带扩展名的文件名?这是我一直在使用的代码,但我希望得到更优雅的东西。有开箱即用的解决方案吗?
$file = new SplFileInfo("path/to/file.txt.zip");
echo 'basename: '.$file->getBasename();
echo PHP_EOL;
echo 'filename: '.$file->getFilename();
echo PHP_EOL;
echo 'extension: '.$file->getExtension();
echo PHP_EOL;
echo 'basename w/o extension: '.$file->getBasename('.'.$file->getExtension());
>>OUTPUT
>>basename: file.txt.zip
>>filename: file.txt.zip
>>extension: zip
>>basename w/o extension: file.txt
我迟到了,所有的功劳都应该归功于@salathe,他是第一个帮助OP的人,但这里是PHP 手册的链接 http://php.net/manual/en/splfileinfo.getbasename.php对于基本名称函数。基本上,您获得扩展名,然后在前面添加一个点.
最后使用 basename 函数来获取名称,如下所示:
$file->getBasename('.' . $file->getExtension())
为了快速阅读,下面是 PHP 手册页的示例:
$info = new SplFileInfo('file.txt');
var_dump($info->getBasename());
$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename());
$info = new SplFileInfo('/path/to/file.txt');
var_dump($info->getBasename('.txt'));
Output:
string(8) "file.txt"
string(8) "file.txt"
string(4) "file"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)