찾다
php教程PHP源码PHP中获取文件扩展名的N种方法小结_php技巧

PHP中获取文件扩展名的N种方法 从网上收罗的,基本上就以下这几种方式

第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 &#39;<br>&#39;.$pics[$num-1];



这样就可以输出
.php了。

下面利用foreach

代码如下:

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



来有一个比较好的函数end我推荐使用此函数快捷 end函数用法

 代码如下:

echo end($pics); 
echo &#39;<br>&#39;;



其它的访方法可以在文件上传时判断,不过那需要文件上传不上传我们不能使用$_FILES来操作。

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
在 Windows 11 上打开 Webp 图像的 4 种快速方法在 Windows 11 上打开 Webp 图像的 4 种快速方法Sep 30, 2023 pm 02:13 PM

WebP或WebPicture是由Google开发的一种现代图像格式,最近已被业界广泛使用。这些图像比JPG,JPEG或PNG文件小,从而提高了页面加载速度,并从SEO的角度来看使它们很有价值。但是如何在Windows11中打开WebP文件?鉴于它是一种相对较新的图像格式,于2010年&lt;&gt;月首次宣布,兼容性必然是一个问题。一些照片编辑软件仍然不支持文件扩展名。但事情变化很快!Windows11是否支持WebP?虽然WebP图像文件与之前的Windows11不兼容,但M

如何解决 Windows 11 中的文件名或扩展名过长的问题?如何解决 Windows 11 中的文件名或扩展名过长的问题?Apr 22, 2023 pm 04:37 PM

您在传输文件时是否遇到过任何问题,并且禁止您这样做?好吧,许多Windows用户最近报告说,他们在将文件复制并粘贴到文件夹中时遇到了问题,其中抛出了一个错误,提示“目标文件夹的文件名太长”。此外,其他一些Windows用户在打开任何文件时表示失望,并说“文件名或扩展名太长”,他们无法打开文件。这不允许他们将文件传输到任何其他文件夹,这让用户感到失望。在分析问题时,我们提出了一系列解决方案,可能有助于缓解问题,用户可以轻松传输文件。如果您也遇到类似情况,请参阅此帖子以了解更多信息。来源:https

如何在 Windows 11、10 中打开没有扩展名的文件如何在 Windows 11、10 中打开没有扩展名的文件Apr 14, 2023 pm 05:52 PM

除非你知道它的扩展名,否则拥有一个文件并不意味着什么。有些文件没有扩展名。大多数情况下,扩展可能只是被隐藏了,您可以使用第1节中列出的方法从Windows文件资源管理器本身轻松找到它。即使该文件实际上没有扩展名,也可以按照第2节中列出的方法轻松找到。最后,当您知道文件的扩展名后,您可以按照第3节中的步骤找到合适的应用程序来打开您的文件。因此,本文是您所有文件扩展名问题的完整解决方案。希望你喜欢阅读!第1节:如何确定文件是否有扩展名打开没有扩展名的文件的第一步是确保该文件确实没有扩展名。这

不一致的文件格式与扩展名如何处理不一致的文件格式与扩展名如何处理Feb 19, 2024 pm 04:47 PM

文件格式和扩展名不匹配怎么解决在计算机使用过程中,经常会遇到文件格式和扩展名不匹配的情况。当我们尝试打开一个文件时,系统可能会提示“无法打开文件”或“文件格式不受支持”。这种情况可能会让人感到困惑和失望,但其实解决这个问题并不难,只需要一些简单的步骤就可以解决。首先,我们需要了解文件格式和扩展名的含义。文件格式指的是文件的存储方式和编码方式,例如文本文件是以

文档后缀是什么文档后缀是什么Mar 01, 2023 pm 03:06 PM

​文档后缀也叫文件扩展名是操作系统用来标记文件类型的一种机制;​文档后缀名最主要的作用是让系统决定当用户打开指定文件的时候应该使用什么软件来运行,因此可以用于保护某些文件、节省磁盘空间、清除设置面板上的图标以及设置关联。

如何重命名文件夹内所有文件的扩展名,包括子文件夹如何重命名文件夹内所有文件的扩展名,包括子文件夹Apr 14, 2023 pm 12:22 PM

假设您需要将文件的扩展名从一个扩展名重命名为另一个扩展名,例如jpg到png。这很简单,当然!但是,如果您有多个需要更改扩展名的文件怎么办?或者更糟糕的是,如果这些多个文件也位于多个文件夹和子文件夹中,在一个文件夹中怎么办?好吧,对于一个普通人来说,这可能是一场噩梦。但对于一个极客来说,绝对不是。现在的问题是,你是不是极客。好吧,有了 极客专页的帮助,您绝对是!在本文中,我们通过批处理脚本的方法解释了如何轻松地重命名文件夹内所有文件的扩展名,包括您选择的子文件夹从一个扩展名到另一个扩展名。注意:

使用path/filepath.Ext函数获取文件路径的扩展名部分使用path/filepath.Ext函数获取文件路径的扩展名部分Jul 25, 2023 pm 08:42 PM

使用path/filepath.Ext函数获取文件路径的扩展名部分在编程过程中,经常会遇到需要获取文件的扩展名的需求。Go语言提供了一个非常方便的函数path/filepath.Ext来实现这个功能。本文将介绍如何使用该函数来获取文件路径的扩展名部分。首先,让我们来看一个简单的示例:packagemainimport(&quot;fmt&q

文件类型可以根据什么来识别文件类型可以根据什么来识别Jul 19, 2022 pm 04:45 PM

文件的类型可以根据“文件扩展名”来识别。文件扩展名是操作系统用来标记文件类型的一种机制,或者符号;扩展名几乎是每个文件必不可少的一部分,如果一个文件没有扩展名,那么操作系统就无法辨别这个文件,不能区分它属于什么类型,从而无法判断到底使用哪款软件进行处理此文件。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.