在php开发过程中,获取文件扩展名是非常常见的需求。比如我们在上传文件的时候,首先需要判断文件类型是否为我们允许上传的类型。这个时候就需要使用php来获取文件的后缀或者说扩展名。
本文中,我们介绍三种php获取文件扩展名的方法
方法一:使用PHP pathinfo()获取文件扩展名方法二:使用PHP SplFileInfo类获取文件后缀方法三:使用PHP substr()和strrchr()函数获取文件扩展名pathinfo() 函数以数组的形式返回关于文件路径的信息。
返回的数组元素如下:
[dirname]: 目录路径[basename]: 文件名[extension]: 文件后缀名[filename]: 不包含后缀的文件名语法:
pathinfo(path,options)
参数描述:
参数描述path必需。规定要检查的路径。options可选。规定要返回的数组元素。默认是 all。
可能的值:
参数 | 描述 |
---|---|
path | 必需。规定要检查的路径。 |
options | 可选。规定要返回的数组元素。默认是 all。 可能的值: PATHINFO_DIRNAME - 只返回 dirnamePATHINFO_BASENAME - 只返回 basenamePATHINFO_EXTENSION - 只返回 extensionPATHINFO_FILENAME - 只返回 filename |
我们可以使用pathinfo()函数从字符串获取文件扩展名。
例子:
$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 :: getExtension()函数提取文件扩展名。
SplFileInfo :: getExtension()函数是PHP中标准PHP库(SPL)的内置函数,用于获取文件扩展名。
语法:
string SplFileInfo::getExtension( void )
该函数不接受任何参数。该函数返回包含文件扩展名的字符串。
下面的示例说明了如何使用SplFileInfo类获取文件扩展名。
getExtension() . ""; } ?>
输出:
php
txt
php
c
substr() 函数返回字符串的一部分。
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
结合这两个函数的功能,我们可以写一个php自定义函数获取文件扩展名。
下面的自定义函数是我写的:
function get_file_extension($file_name) { return substr(strrchr($file_name,'.'),1); }
注意:php获取文件后缀的方法有很多种,本文章只列举三种方法。各位php大佬也可以使用其他方法来实现。
到此这篇关于php获取文件扩展名的3种方法的文章就介绍到这了,更多相关php获取文件扩展名内容请搜索程序之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持程序之家!
高效分页:Pagerfanta 助力你的 PHP 项目
Laravel开发中如何提升Model方法的代码提示效率?
在PHP开发中进行代码版本管理与团队协作,可以遵循以下步骤和工具:版本控制系统:Git:这是最常用的分布式版本控制系统。使用Git,你可以跟踪代码的变化,创建分支来进行功能开发,并轻松地合并这些变化。GitHub 或 GitLab:这些平台不仅提供Git仓库托管,还提供了强大的协作工具,如代码审查(Pull Requests)、问题跟踪(Issues)和持续集成(CI/CD)等。分支策略:Git Flow:这是一种常用的分支管理策略,包含主分支(master)、开发分支(develop)、功能分支(fea
Windows下PHP -v命令一闪而过是什么原因?
Composer使用时如何解决PHP配置openssl扩展错误?
MySQL如何使用正则表达式替换特定字符串及其后续内容?