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


猜你喜欢
- ARIMA模型预测餐厅销量import numpy as npimport pandas as pdimport matplotlib.py
- 在数据分析领域,数据库是我们的好帮手。不仅可以接受我们的查询时间,还可以在这基础上做进一步分析。所以,我们必然要在数据库插入数据。在实际应用
- 训练完目标检测模型之后,需要评价其性能,在不同的阈值下的准确度是多少,有没有漏检,在这里基于IoU(Intersection over Un
- join用来连接字符串,split恰好相反,拆分字符串的。不用多解释,看完代码,其意自现了。>>>li = ['m
- php从5.2.x升级到5.3.2.出来问题了。有些原来能用的程序报错了。报错内容是Deprecated: Function session
- reflow是个神奇的东西,之前Realazy说到过这个reflow,我摘出其中的重点:在CSS规范中有一个渲染对象的概念,通常用一个盒子(
- Numpy随机矩阵: np.random.randn(d0, d1, d2, ...)矩阵大小与形状: np.ndarray.size 与
- 1、 select top 10 * from ( select top (@Page * 10) ROW_NUMBER() OVER (o
- 1.可以通过settings/dev.py的ALLOWED_HOSTS,设置允许访问# 设置哪些客户端可以通过地址访问到后端 A
- numpy打乱数组或打乱矩阵行使用numpy.random.shuffle函数,能够打乱ndarray对象的第一维度,对于数组来说,就是整体
- 前言django,web开发中,用django-debug-toolbar来调试请求的接口,无疑是完美至极。 可能本人,见识博浅,才说完美至
- 综述:本文讨论了VBScript和 JScript之间的区别,以及它们的使用场合。推荐:Vbscript5.5中文语言参考手册chm格式下载
- 对单词最后一个字母的预测LSTM 的原理自己找,这里只给出简单的示例代码,就是对单词最后一个字母的预测。# LSTM 的原理自己找,这里只给
- 本文实例总结了MySQL数据库优化技术的索引用法。分享给大家供大家参考,具体如下:这里紧接上一篇《MySQL数据库优化技术之配置技巧总结》,
- 在Python我们要判断一个文件对当前用户有没有读、写、执行权限,我们通常可以使用os.access函数来实现,比如:# 判断读权限os.a
- 这一篇复习一下ECMAScript规范中的基础语法,英文好的朋友可以直接阅读官方文档。JavaScript本质上也是一种类C语言,熟悉C语言
- 在数据预处理过程中可能需要将列的顺序颠倒,有两种方法。import numpy as npimport pandas as pddf = p
- 问题来源jupyter notebook在命令行中启动之后,默认根目录为命令行的当前目录,这样便利性较差。下面给出了三种指定启动目录的方法,
- 本文实例讲述了js日期范围初始化得到前一个月日期的方法。分享给大家供大家参考。具体分析如下:今天做时间范围的初始化设定,开始时间是当前时间的
- var chars = ['0','1','2','3','4