php去掉文件扩展名的要领:1、运用pathinfo函数返回完全文件名的一部份;2、运用basename函数从文件名中删除该扩展名;3、运用substr和strrpos函数返回没有扩展名的完全途径和文件名。

python 获取除扩展名外的完整路径 python 去掉扩展名_python 获取除扩展名外的完整路径

引荐:《PHP视频教程》

PHP从文件名(filename)中删除扩展名(extension)的三种要领

假如你有一个文件名,你须要从PHP中删除扩展名(extension),有许多要领能够做到这一点。这里有三种要领。

运用pathinfo()函数

pathinfo()函数返回一个包括dirname,basename,extension和filename的数组。或许,您能够通报一个PATHINFO_常量,并返回完全文件名的那一部份:

$filename ='filename.html';
$without_extension = pathinfo($filename, PATHINFO_FILENAME);

假如文件名包括完全途径,则仅返回不带扩展名的文件名。

运用basename()函数

假如扩展名是已知的而且关于一切文件名是雷同的,则能够将第二个可选参数通报给basename()以通知它从文件名中删除该扩展名:

$filename ='filename.html';
$without_extension = basename($filename,'.html');

假如文件名包括完全途径,则仅返回不带扩展名的文件名。

运用substr和strrpos

$filename ='filename.html';
$without_extension = substr($filename, 0, strrpos($filename, "."));

假如文件名包括完全途径,则返回没有扩展名的完全途径和文件名。您能够运用basename()来删除途径,比方:

basename(substr($filename, 0, strrpos($filename, ".")));

只管它比运用pathinfo慢。

速率比较

运用PHP 5.4在Mac上以10,000,000次轮回运转个中的每个:

pathinfo:10.13秒
basename:7.87秒
substr / strrpos:6.05秒
basename(substr / strrpos):11.98秒

假如文件名不包括完全途径,或许假如它不主要,那末substr / strrpos选项似乎是最快的。

假如文件名包括途径而且您不想要途径但确切晓得要删除的扩展名是什么,那末basename似乎是最快的。

假如文件名包括途径,则不须要途径,也不晓得扩展名是什么,那末运用pathinfo()选项。

结论

另有许多其他要领能够做到这一点,有些大概会更快。在许多情况下,速率大概并不那末主要(运转pathinfo的10秒钟毕竟是10万次)。这篇文章的目标是展现一些用PHP从文件名中删除扩展名的要领。