php获取文件扩展名的3种方法实例
作者:wuxiaopengnihao1 发布时间:2023-05-25 02:15:51
前言
在php开发过程中,获取文件扩展名是非常常见的需求。比如我们在上传文件的时候,首先需要判断文件类型是否为我们允许上传的类型。这个时候就需要使用php来获取文件的后缀或者说扩展名。
本文中,我们介绍三种php获取文件扩展名的方法
方法一:使用PHP pathinfo()获取文件扩展名
方法二:使用PHP SplFileInfo类获取文件后缀
方法三:使用PHP substr()和strrchr()函数获取文件扩展名
PHP pathinfo()获取文件扩展名
pathinfo() 函数以数组的形式返回关于文件路径的信息。
返回的数组元素如下:
[dirname]: 目录路径
[basename]: 文件名
[extension]: 文件后缀名
[filename]: 不包含后缀的文件名
语法:
pathinfo(path,options)
参数描述:
参数描述path必需。规定要检查的路径。options可选。规定要返回的数组元素。默认是 all。
可能的值:
参数 | 描述 |
---|---|
path | 必需。规定要检查的路径。 |
options | 可选。规定要返回的数组元素。默认是 all。 可能的值:
|
我们可以使用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'] . '<br/>'; // Returns folder/directory
echo $ext['basename'] . '<br/>'; // Returns file.html
echo $ext['extension'] . '<br/>'; // Returns .html
echo $ext['filename'] . '<br/>'; // Returns file
PHP SplFileInfo获取文件后缀
SplFileInfo类为单个文件的信息提供了一个高级的面向对象的接口。
我们可以使用SplFileInfo :: getExtension()函数提取文件扩展名。
SplFileInfo :: getExtension()函数是PHP中标准PHP库(SPL)的内置函数,用于获取文件扩展名。
语法:
string SplFileInfo::getExtension( void )
该函数不接受任何参数。该函数返回包含文件扩展名的字符串。
下面的示例说明了如何使用SplFileInfo类获取文件扩展名。
<?php
$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() . "</br>";
}
?>
输出:
php
txt
php
c
PHP substr()和strrchr()函数获取文件扩展名
substr() 函数返回字符串的一部分。
strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。
结合这两个函数的功能,我们可以写一个php自定义函数获取文件扩展名。
下面的自定义函数是我写的:
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
注意:php获取文件后缀的方法有很多种,本文章只列举三种方法。各位php大佬也可以使用其他方法来实现。
来源:https://blog.csdn.net/wuxiaopengnihao1/article/details/126462538


猜你喜欢
- 引子:今天在蓝点看了Yang的博客《CSS样式表中继承关系的空格与不空格》,思考了一下,本来想写《CSS样式的复合定义与复合调用及简单的模块
- 修改my.ini或my.conf,将sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_US
- 游戏说明:一个考验您记忆力的游戏,只要两个方块的;图案能够凑成一对,最终翻开所有的图片,那么您就获胜,计算机将自动记录您的游戏时
- 如何提高SQL Server数据库的性能,该从哪里入手呢?笔者认为,该遵循从外到内的顺序,来改善数据库的运行性能。如下图: 第一层
- <base href="http://digi.tech.qq.com/images/ld/2007/1022/
- 本文总结了ASP初学者常犯的几个错误,希望对asp学习者有所帮助!1.记录集关闭之前再次打开:-----------------------
- 简介:外部连接和自联接inner join(等值连接) 只返回两个表中联结字段相等的行left join(左联接) 返回包括左表中的所有记录
- abs(number) 返回绝对值。 array(arglist) 创建一个数组。 asc(string) 返回字符串第一个字符的ansi码
- 在CSS中,模式(pattern)匹配规则决定那种样式规则应用于文档树(document tree)的哪个元素。这些模式叫着选择符(sele
- 笔者认为,在创建索引时要做到三个适当,即在适当的表上、适当的列上创建适当数量的索引。虽然这可以通过一句话来概括优化的索引的基本准则,但是要做
- 程序开始:<% Server.ScriptTimeout = &HE10 '&
- 在html 5增加了新元素header、footer,测试过发现IE不能解析html 5新增的元素。代码如下:<!DOCTYPE ht
- 去听了牛人 dbaron 的一个 Web Page Layout/Display in Mozilla 讲座( via )。讲的东西对我一个
- Yoho, 大家好,又是我哟~ 首先抱歉让大家等了这么多时间。最近实在比较繁忙啦。不过我还是会尽量抽空出来给大家讲点有的没的,欢迎大家继续
- 在学习与运用ASP中,response对象涉及到的方面也比较多,想全部都掌握也并非一两天的事,我也是最近才发现response对象中居然有这
- 用XMLHTTP Post Form时的表单乱码有两方面的原因——Post表单数据时中文乱码;服务器Response被XMLHTTP不正确编
- 如果直接执行SQL语句或者参数绑定则不用担心太多,如以下ORACLE存储过程 create or replace&nbs
- 为了能够使用ERWin能够进行基于MySQL数据库的物理设计,可以采用以下方法步骤(假设你已经有了一个设计好的LOGICAL MODEL):
- 这是为了实现一个效果,而提前作的测试代码!看起来很简单的一个东西,到这会,大约四个小时过去了。不知道是IE6的BUG;还是我自已的BUG!有
- 阅读上一篇:网马解密大讲堂——网马解密中级篇(Eval篇) 一.Document.write 函数简介:在Microsoft JScript