php獲取文件擴(kuò)展名的3種方法實(shí)例
前言
在php開(kāi)發(fā)過(guò)程中,獲取文件擴(kuò)展名是非常常見(jiàn)的需求。比如我們?cè)谏蟼魑募臅r(shí)候,首先需要判斷文件類(lèi)型是否為我們?cè)试S上傳的類(lèi)型。這個(gè)時(shí)候就需要使用php來(lái)獲取文件的后綴或者說(shuō)擴(kuò)展名。
本文中,我們介紹三種php獲取文件擴(kuò)展名的方法
- 方法一:使用PHP pathinfo()獲取文件擴(kuò)展名
- 方法二:使用PHP SplFileInfo類(lèi)獲取文件后綴
- 方法三:使用PHP substr()和strrchr()函數(shù)獲取文件擴(kuò)展名
PHP pathinfo()獲取文件擴(kuò)展名
pathinfo() 函數(shù)以數(shù)組的形式返回關(guān)于文件路徑的信息。
返回的數(shù)組元素如下:
- [dirname]: 目錄路徑
- [basename]: 文件名
- [extension]: 文件后綴名
- [filename]: 不包含后綴的文件名
語(yǔ)法:
pathinfo(path,options)
參數(shù)描述:
參數(shù)描述path必需。規(guī)定要檢查的路徑。options可選。規(guī)定要返回的數(shù)組元素。默認(rèn)是 all。
可能的值:
| 參數(shù) | 描述 |
|---|---|
| path | 必需。規(guī)定要檢查的路徑。 |
| options | 可選。規(guī)定要返回的數(shù)組元素。默認(rèn)是 all。 可能的值:
|
我們可以使用pathinfo()函數(shù)從字符串獲取文件擴(kuò)展名。
例子:
$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類(lèi)為單個(gè)文件的信息提供了一個(gè)高級(jí)的面向?qū)ο蟮慕涌凇?/p>
我們可以使用SplFileInfo :: getExtension()函數(shù)提取文件擴(kuò)展名。
SplFileInfo :: getExtension()函數(shù)是PHP中標(biāo)準(zhǔn)PHP庫(kù)(SPL)的內(nèi)置函數(shù),用于獲取文件擴(kuò)展名。
語(yǔ)法:
string SplFileInfo::getExtension( void )
該函數(shù)不接受任何參數(shù)。該函數(shù)返回包含文件擴(kuò)展名的字符串。
下面的示例說(shuō)明了如何使用SplFileInfo類(lèi)獲取文件擴(kuò)展名。
<?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()函數(shù)獲取文件擴(kuò)展名
substr() 函數(shù)返回字符串的一部分。
strrchr() 函數(shù)查找字符串在另一個(gè)字符串中最后一次出現(xiàn)的位置,并返回從該位置到字符串結(jié)尾的所有字符。
結(jié)合這兩個(gè)函數(shù)的功能,我們可以寫(xiě)一個(gè)php自定義函數(shù)獲取文件擴(kuò)展名。
下面的自定義函數(shù)是我寫(xiě)的:
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}注意:php獲取文件后綴的方法有很多種,本文章只列舉三種方法。各位php大佬也可以使用其他方法來(lái)實(shí)現(xiàn)。
總結(jié)
到此這篇關(guān)于php獲取文件擴(kuò)展名的3種方法的文章就介紹到這了,更多相關(guān)php獲取文件擴(kuò)展名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實(shí)現(xiàn)實(shí)時(shí)生成并下載超大數(shù)據(jù)量的EXCEL文件詳解
EXCEL文件的處理是我們?cè)谌粘9ぷ髦薪?jīng)常會(huì)遇到的,這篇文章主要給大家介紹了關(guān)于利用PHP如何實(shí)現(xiàn)實(shí)時(shí)生成并下載超大數(shù)據(jù)量的EXCEL文件,通過(guò)文中介紹的這個(gè)方法對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-10-10
PHP使用ajax的post方式下載excel文件簡(jiǎn)單示例
這篇文章主要介紹了PHP使用ajax的post方式下載excel文件,結(jié)合簡(jiǎn)單示例形式分析了php后端Excel文件下載及前端ajax交互相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
ThinkPHP實(shí)現(xiàn)遞歸無(wú)級(jí)分類(lèi)——代碼少
這篇文章通過(guò)一段簡(jiǎn)短的代碼實(shí)現(xiàn)了ThinkPHP實(shí)現(xiàn)遞歸無(wú)級(jí)分類(lèi),,需要的朋友可以參考下2015-07-07
在ThinkPHP6中使用mysql進(jìn)行分頁(yè)查詢的實(shí)現(xiàn)代碼
隨著互聯(lián)網(wǎng)的快速發(fā)展,web應(yīng)用程序的開(kāi)發(fā)也越來(lái)越復(fù)雜,而分頁(yè)查詢是web應(yīng)用程序中常見(jiàn)的功能之一,thinkphp6是一個(gè)web框架,可以幫助開(kāi)發(fā)人員快速開(kāi)發(fā)應(yīng)用程序,在本文中,我們將討論如何在thinkphp6中使用mysql進(jìn)行分頁(yè)查詢,需要的朋友可以參考下2024-07-07
PHP偽靜態(tài)Rewrite設(shè)置之APACHE篇
Rewirte主要的功能就是實(shí)現(xiàn)URL的跳轉(zhuǎn)和隱藏真實(shí)地址,基于Perl語(yǔ)言的正則表達(dá)式規(guī)范。平時(shí)幫助我們實(shí)現(xiàn)擬靜態(tài),擬目錄,域名跳轉(zhuǎn),防止盜鏈等2014-07-07
PHP中有關(guān)長(zhǎng)整數(shù)的一些操作教程
這篇文章主要給大家介紹了關(guān)于PHP中有關(guān)長(zhǎng)整數(shù)的一些操作教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用PHP具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
PHP單例模式數(shù)據(jù)庫(kù)連接類(lèi)與頁(yè)面靜態(tài)化實(shí)現(xiàn)方法
這篇文章主要介紹了PHP單例模式數(shù)據(jù)庫(kù)連接類(lèi)與頁(yè)面靜態(tài)化實(shí)現(xiàn)方法,涉及php面向?qū)ο髥卫J綌?shù)據(jù)庫(kù)連接類(lèi)的定義與使用方法,以及緩存實(shí)現(xiàn)頁(yè)面靜態(tài)化相關(guān)操作技巧,需要的朋友可以參考下2019-03-03

