本文中,我们介绍三种php获取文件扩展名的方法
方法一:使用PHP pathinfo()获取文件扩展名
方法二:使用PHP SplFileInfo类获取文件后缀
方法三:使用PHP substr()和strrchr()函数获取文件扩展名
pathinfo()获取方法
pathinfo() 函数以数组的形式返回关于文件路径的信息。
返回的数组:
1 2 3 4 | [dirname]: 目录路径 [ basename ]: 文件名 [extension]: 文件后缀名 [filename]: 不包含后缀的文件名 |
语法:
参数描述:
1 2 | path 必需。规定要检查的路径。 options 可选。规定要返回的数组元素。默认是 all。 |
可能的值:
1 2 3 4 | PATHINFO_DIRNAME - 只返回 dirname PATHINFO_BASENAME - 只返回 basename PATHINFO_EXTENSION - 只返回 extension PATHINFO_FILENAME - 只返回 filename |
我们可以使用pathinfo()函数从字符串获取文件扩展名。
例子:
1 2 3 4 5 6 7 8 9 10 | $file = 'folder/directory/file.html' ; $ext = pathinfo ( $file , PATHINFO_EXTENSION); // Returns html echo $ext ; $file = 'folder/directory/file.html' ; $ext = pathinfo ( $file ); echo $ext [ 'dirname' ] . ' ' ; // Returns folder/directory echo $ext [ 'basename' ] . ' ' ; // Returns file.html echo $ext [ 'extension' ] . ' ' ; // Returns .html echo $ext [ 'filename' ] . ' ' ; // Returns file |
SplFileInfo获取方法
SplFileInfo类为单个文件的信息提供了一个高级的面向对象的接口。
我们可以使用SplFileInfo :: getExtension()函数提取文件扩展名。
SplFileInfo :: getExtension()函数是PHP中标准PHP库(SPL)的内置函数,用于获取文件扩展名。
语法:
1 | string SplFileInfo::getExtension( void ) |
该函数不接受任何参数。该函数返回包含文件扩展名的字符串。
下面的示例说明了如何使用SplFileInfo类获取文件扩展名。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$GFG = array ( "/home/rajvir/Desktop/GeeksforGeeks/dummy.php" , "/home/rajvir/Desktop/gfg.txt" , "/var/www/html/gfg.php" , "demo.c" ); foreach ( $GFG as & $file_name ) { // Create new SPlFileInfo Object $file = new SplFileInfo( $file_name ); // Print result echo $file ->getExtension() . "" ; } ?> |
输出:
substr()和strrchr()函数获取方法
substr() 函数返回字符串的一部分。
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
结合这两个函数的功能,我们可以写一个php自定义函数获取文件扩展名。
1 2 3 | function get_file_extension( $file_name ) { return substr ( strrchr ( $file_name , '.' ),1); } |
来源地址:https://blog.csdn.net/winkexin/article/details/131150418
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341