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

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

May 25, 2016 pm 05:12 PM
擴充名

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在 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

檔案格式和副檔名不符怎麼解決在電腦使用過程中,常常會遇到檔案格式和副檔名不符的情況。當我們嘗試開啟一個檔案時,系統可能會提示「無法開啟檔案」或「檔案格式不受支援」。這種情況可能會讓人感到困惑和失望,但其實解決這個問題並不難,只需要一些簡單的步驟就可以解決。首先,我們需要了解檔案格式和副檔名的含義。文件格式指的是文件的儲存方式和編碼方式,例如文字文件是以

如何重新命名資料夾內所有檔案的副檔名,包括子資料夾 如何重新命名資料夾內所有檔案的副檔名,包括子資料夾 Apr 14, 2023 pm 12:22 PM

假設您需要將檔案的副檔名從一個副檔名重新命名為另一個副檔名,例如jpg到png。這很簡單,當然!但是,如果您有多個需要更改擴展名的檔案怎麼辦?或者更糟的是,如果這些多個檔案也位於多個資料夾和子資料夾中,在一個資料夾中呢?好吧,對於一個普通人來說,這可能是一場噩夢。但對於一個極客來說,絕對不是。現在的問題是,你是不是極客。好吧,有了 極客專頁的幫助,您絕對是!在本文中,我們透過批次腳本的方法解釋瞭如何輕鬆地重命名資料夾內所有檔案的副檔名,包括您選擇的子資料夾從一個副檔名到另一個副檔名。注意:

文件字尾是什麼 文件字尾是什麼 Mar 01, 2023 pm 03:06 PM

文件後綴也叫檔案副檔名是作業系統用來標記檔案類型的一種機制;文件後綴名最主要的作用是讓系統決定當使用者開啟指定檔案的時候應該使用什麼軟體來運行,因此可以用於保護某些文件、節省磁碟空間、清除設定面板上的圖示以及設定關聯。

使用path/filepath.Ext函數取得檔案路徑的副檔名部分 使用path/filepath.Ext函數取得檔案路徑的副檔名部分 Jul 25, 2023 pm 08:42 PM

使用path/filepath.Ext函數取得檔案路徑的副檔名部分在程式設計過程中,經常會遇到需要取得檔案的副檔名的需求。 Go語言提供了一個非常方便的函數path/filepath.Ext來實作這個功能。本文將介紹如何使用該函數來取得檔案路徑的副檔名部分。首先,讓我們來看一個簡單的範例:packagemainimport("fmt&q

文件類型可以根據什麼來識別 文件類型可以根據什麼來識別 Jul 19, 2022 pm 04:45 PM

檔案的類型可以根據「檔案副檔名」來識別。檔案副檔名是作業系統用來標記檔案類型的一種機制,或者符號;副檔名幾乎是每個檔案不可或缺的一部分,如果一個檔案沒有副檔名,那麼作業系統就無法辨別這個文件,不能區分它屬於什麼類型,因此無法判斷到底使用哪款軟體進行處理此文件。

See all articles