PHP中获取文件扩展名的N种方法小结

2020最新PHP面试题(附带答案) 1.什么事面向对象?主要特征是什么? 面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。 我的官方群点击此处。 2.SESSION 与 COOKIE的区别是什么,请从协议,产生的原因与作用说明? 1、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求不同的页面不能看做是同一个用户。 2、SESSION存储... 阅读详情
第1种方法:
复制代码 代码如下:

function get_extension($file)
{
substr(strrchr($file, '.'), 1);
}

第2种方法:
复制代码 代码如下:

function get_extension($file)
{
return substr($file, strrpos($file, '.')+1);
}

第3种方法:
复制代码 代码如下:

function get_extension($file)
{
return end(explode('.', $file));
}

第4种方法:
复制代码 代码如下:

function get_extension($file)
{
$info = pathinfo($file);
return $info['extension'];
}

第5种方法:
复制代码 代码如下:

function get_extension($file)
{
return pathinfo($file, PATHINFO_EXTENSION);
}

以上几种方式粗看了一下,好像都行,特别是1、2种方法,在我不知道pathinfo有第二个参数之前也一直在用。但是仔细考虑一下,前四种方法都有各种各样的毛病。要想完全正确获取文件的扩展名,必须要能处理以下三种特殊情况。
没有文件扩展名
路径中包含了字符.,如/home/test.d/test.txt
路径中包含了字符.,但文件没有扩展名。如/home/test.d/test
很明显:1、2不能处理第三种情况,3不能正确处理第一三种情况。4可以正确处理,但是在不存在扩展名时,会发出一个警告。只有第5种方法才是最正确的方法。顺便看一下pathinfo方法。官网上介绍如下:
$file_path = pathinfo('/www/htdocs/your_image.jpg');

echo "$file_path ['dirname']\n";
echo "$file_path ['basename']\n";
echo "$file_path ['extension']\n";
echo "$file_path ['filename']\n"; // only in PHP 5.2+
它会返回一个数组,包含最多四个元素,但是并不会一直有四个,比如在没有扩展名的情况下,就不会有extension元素存在,所以第4种方法才会发现警告。但是phpinfo还支持第二个参数。可以传递一个常量,指定返回某一部分的数据:
PATHINFO_DIRNAME - 目录
PATHINFO_BASENAME - 文件名(含扩展名)
PATHINFO_EXTENSION - 扩展名
PATHINFO_FILENAME - 文件名(不含扩展名,PHP>5.2)
这四个常量的值分别是1、2、4、8,刚开始我还以为可以通过或运算指定多个:
pathinfo($file, PATHINFO_EXTENSION | PATHINFO_FILENAME);
后来发现这样不行,这只会返回几个进行或运算常量中最小的那个。也就是四个标志位中最小位为1的常量。
以下是一些补充方法
一,php explode函数
复制代码 代码如下:

$pic = 'abc.php';
$pics = explode('.' , $pic);
echo $num = count($pics);
echo '<br>'.$pics[$num-1];


这样就可以输出
.php了。

下面利用foreach
复制代码 代码如下:

foreach ($pics as $value) //2
{
$a = $value;
}
echo $a.'<br>';


来有一个比较好的函数end我推荐使用此函数快捷 end函数用法
复制代码 代码如下:

echo end($pics);

echo '<br>';














$filename="123.jpg";
//方法一:
function get_ext($file_name){
  return array_pop(explode('.', $file_name));
  //用.号对字符串进行分组
}
echo get_ext($filename);
//方法二:
$fileEx=strtolower(substr(strrchr($filename,"."),1));
echo $fileEx;
//方法三:
$extend=pathinfo($filename);
echo $extend['extension'];
//方法四:
$filetype=array("image/gif","image/jpeg");
//判断文件扩展名类型是否在该 数组中
if(in_array($_FILES['file']['type'],$filetype)){
//针对上传文件判断
  echo $_FILES['file']['type'];
}

PCB线路板的制作工艺流程分享!2021-08-21 Pcb板制作工艺流程:开料-钻孔-沉铜-压膜-曝光-显影-电铜-电锡-退膜-蚀刻-退锡-光学检测-印阻焊油-阻焊曝光、显影-字符-表面处理-成型-电测-终检-抽测-包装。具体如下:1、开料(CUT) 将原始的覆铜板切割成可以用在生产线上制作的板子过程2、钻孔 使PCB板层间产生通孔,以达到连通层间的目的。 3、沉铜 经过钻孔后的线路板在沉铜缸内会发生氧化还原反应,形成铜层对孔进行孔金属化,使原来绝缘的基材表面沉积上铜,达到层间电性相通。 4、压膜 压膜后的PCB板上面压了一层蓝色的干膜, 干膜是一个载体 阅读详情

相关推荐

QUIC 协议域名封堵:核心原理、关键技术与实现路径(C/C++代码实现)

随着 QUIC 协议在互联网领域的广泛应用,其基于 UDP 的传输特性与加密设计,打破了传统 TCP 协议下的域名封堵逻辑,给网络合规管理与安全防护带来新的技术难题。本文将脱离具体代码实现,聚焦 QUIC 协议域名封堵的核心原理、关键技术环节与实际落地路径,从协议特性本质出发,解析如何在遵循 RFC 9000、RFC 9001 等规范的前提下,实现对 QUIC 流量的精准域名封堵。

chen1415886044的博客 1466

php获取当前文件名和路径,PHP 中获取文件名及路径

PHP 中获取文件名及路径为了脚本程序的兼容性,很多时候脚本的名称都不是固定的。所以我们需要通过动态获取当前脚本的路径、文件名来完成某些功能。PHP 中,我们可以使用常量 __FILE__ 来获取当前被执行脚本的完整路径。注意:当包含此变量的脚本被其他脚本include或者require的时候, __FILE__ 将仍然返回此脚本的地址,而不是调用此脚本的位置。如下面的代码,我们将此文件保存在 D...

weixin_26905423的博客 2514

Cisco Packet Tracert 无线路由器配置

Cisco Packet Tracert 无线路由器配置

yushan_caoyu的博客 2万+

【php-字符串函数】 使用三种以上方式获取一个文件的扩展名

使用三种以上方式获取一个文件的扩展名 $file = 'siyuantlw/程序设计.php'; 1.使用strrchr函数 strrchr() 函数查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符。 function getExt1($file){ return substr(strrchr($file,'.'),1); } echo get...

2016

波分复用-Zblock仿真

Z-BLOCK是一种用于光通信模块的光学元件,其核心结构是在玻璃块一侧贴有4个特定波长滤光片,另一侧镀有反射膜和增透膜。光信号在内部呈现Z字形反射路径,实现波长分离。文章以可见光LED为例,在ZEMAX中演示了非序列模式下的建模过程,重点介绍了滤光片和膜层的参数设置方法。需要注意的是,入射角度需根据玻璃折射率、通道高度和厚度精确计算,否则可能导致光泄漏。该建模方法同样适用于光通信中的光纤激光器系统。

Zhaxibamao的博客 1747

Backtrader 文档学习- 整体架构功能分析理解

backtrader是一个用于开发和执行交易策略的Python框架。它提供了一套完整的工具和功能,使得用户可以方便地进行策略回测、实盘交易以及数据分析。backtrader的入口为Cerebro类,该类将所有输入(Data Feeds)、策略 (Strategy)、观察者(Observers)、策略评估(Analyzers) 、经纪人(Broker)、订单(Order)、交易(Trade)和日志记录(Writers)整合起来,实现回测以及交易,并返回结果和图表。

六月闻君 6327

php获取文件后缀名的几种方法

function getExt($filename) {     //strrpos()函数查找字符串在另一个字符串中最后一次出现的位置。如果成功,则返回位置,否则返回 false。     $ext = strtolower ( substr ( $filename, strrpos ( $filename, '.' ) + 1 ) );     return $ext; } fu

harryxlb的专栏 657

数据驱动的细胞动力学:从高通量成像到机器学习预测的完整实践指南

细胞动力学研究细胞群体随时间变化的规律和命运决策机制,是理解生命过程的基础。其核心原理在于将传统的定性观察转化为定量分析,通过高通量成像、单细胞测序等技术获取多维时序数据,并运用机器学习与统计模型挖掘数据中的深层模式。这一技术价值在于实现从“描述现象”到“预测行为”的范式转变,显著提升研究的客观性和可重复性。在应用场景上,它广泛应用于药物筛选、疾病机制研究和发育生物学等领域,能够加速靶点发现和疗效评估。本文聚焦于数据驱动的细胞动力学分析,详细拆解了从实验设计、图像处理、单细胞追踪到特征工程与建模预测的端到端

weixin_29056781的博客 268

php path路径,php pathinfo()函数获取文件路径信息用法总结

在php中,有一个内置的函数pathinfo,可以很方便的来获取文件的扩展名、文件名等信息的!pathinfo()函数的作用就是以数组的形式返回文件路径的信息。本篇文章整理了一些关于php pathinfo()函数的一些用法以及示例,希望对大家理解pathinfo()函数有所帮助。pathinfo()函数的作用是以数组的形式返回文件路径的信息。这篇文章主要介绍php pathinfo()函数的一些...

weixin_39626211的博客 400

ANC降噪学习

概述 ANC,英文名称:Active Noise Control,主动降噪。其原理是降噪系统电路产生降噪MIC接收的外界环境噪音相等的反相信号,将噪声抵消。核心算法 ANC降噪实现核心算法为:FxLMS(最小均方差算法)。最小均方差算法以均方误差为代价函数,并使误差降到最小的算法。 具体算法推导这里不做具体介绍,这里直接列出表达式: ...

王小壮的博客 2万+

html python mysql交互_干货!Python与MySQL数据库的交互实战

安装PyMySQL库如果你想要使用python操作MySQL数据库,就必须先要安装pymysql库,这个库的安装很简单,直接使用pip install pymysql;假如这种方式还是安装不上,就用如下链接找一个合适的安装包,进行安装,这个就不细说了。https://www.lfd.uci.edu/~gohlke/pythonlibs/使用Python连接MySQL数据库1)六个常用的连接参数参数...

weixin_31043555的博客 1561

phpinfo查看可以解析的后缀_php文件扩展名判断及获取文件扩展名的N种方法

下面代码是php文件扩展名判断check file文件扩展名验证function check(obj){if(obj.value == "" || obj.value.length<3){alert("输入的长度不能小于3且不能为空!");obj.focus();}}function check_value(){var str = $("int").value;var repx = /\.(...

weixin_39539002的博客 1026

硬件学习手册【总目录】

欢迎大家来到《硬件学习手册》,专栏主要包括 《硬件经验手册》《电子元器件器件手册》《PCB手册》《CPU手册》《元器件选型手册》五个分册。在开始专栏的更新前,博主先列出专栏的大纲,以供大家参考。大家直接点击大纲中的蓝色标题即可轻松传送。

fydar的博客 5852

PHP中获取文件扩展名的N种方法

PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, '.'), 1); } 第2种方法: function get_extension($file) { return substr($file, strrpos($file, '.')+1); } 第3...

wwppp987的博客 182

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

php五种方法获取文件扩展名,PHP获取文件扩展名五种以上的方法和注释

在PHP面试中或者考试中会有很大几率碰到写出五种获取文件扩展名的方法,下面是我自己总结的一些方法$file = ‘需要进行获取扩展名的文件.php’;//第一种,根据.拆分,获取最后一个元素的值function getExt1{return end(explode(".",$file);)}//第二种,获取最后一个点的位置,截取function getExt2{return substr...

weixin_36308848的博客 543

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

PHP中 获取文件扩展名的N种方法

PHP中获取文件扩展名的N种方法,有以下这几种方式: 第1种方法: function get_extension($file) { substr(strrchr($file, ‘.’), 1); } 第2种方法: function get_extension($file) { return substr($file, strrpos($file, ‘.’)+1); }

xhxhxhxl的博客 226

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php五种方法获取文件扩展名,PHP 获取文件扩展名的5种方法

PHP 获取文件扩展名的5种方法发布于 2014-10-06 21:18:10 | 180 次阅读 | 评论: 0 | 来源: 网友投递PHP开源脚本语言PHP(外文名: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,入门门槛较低,易于学习,使用广泛,主要适用于Web开发领域。PHP的文件后缀名为php...

weixin_42298881的博客 350

php判断扩展名,php文件扩展名判断及获取文件扩展名的N种方法

下面代码是php文件扩展名判断?PHP中获取文件扩展名的N种方法基本上就以下这几种方式:第1种方法:?第2种方法:?第3种方法:?第4种方法:?第5种方法:?以上几种方式粗看了一下,好像都行,特别是1、2种方法,在我不知道pathinfo有第二个参数之前也一直在用。但是仔细考虑一下,前四种方法都有各种各样的毛病。要想完全正确获取文件的扩展名,必须要能处理以下三种特殊情况。没有文件扩展名路径中包含了...

weixin_42352222的博客 202

PHP获取文件扩展名的多种方法

  PHP获取文件扩展名的N种方法。  第1种方法:  function get_extension($file)  {  substr(strrchr($file, '.'), 1);  }  第2种方法:  function get_extension($file)  {  return substr($file, strrpos($file, '.')+1);  }  第3种方法:...

116

php页面文件后缀名,PHP中获取文件扩展名的N种方法

PHP中获取文件扩展名的N种方法从网上收罗的,基本上就以下这几种方式:第1种方法:function get_extension($file){substr(strrchr($file, '.'), 1);}第2种方法:function get_extension($file){return substr($file, strrpos($file, '.')+1);}第3种方法:function g...

weixin_39657444的博客 111
上一篇: 总结了下PHPExcel官方读取的几个例子
下一篇: 使用 phpExcel 读取xls/xlsx文件到数据库
puddingpp
博客等级 码龄9年 10粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值