PHP中獲取副檔名的N種方法

2021-07-09 02:44:16 字數 1302 閱讀 1292

php中獲取副檔名的n種方法 

從網上收羅的,基本上就以下這幾種方式:

第1種方法:

function get_extension($file)

第2種方法:

function get_extension($file)

第3種方法:

function get_extension($file)

第4種方法:

function get_extension($file)

第5種方法:

function get_extension($file)

以上幾種方式粗看了一下,好像都行,特別是1、2種方法,在我不知道pathinfo有第二個引數之前也一直在用。但是仔細考慮一下,前四種方法都有各種各樣的毛病。要想完全正確獲取檔案的副檔名,必須要能處理以下三種特殊情況。

沒有副檔名

路徑中包含了字元.,如/home/test.d/test.txt

路徑中包含了字元.,但檔案沒有副檔名。如/home/test.d/test

很明顯:1、2不能處理第三種情況,3不能正確處理第一三種情況。4可以正確處理,但是在不存在副檔名時,會發出乙個警告。只有第5種方法才是最正確的方法。順便看一下pathinfo方法。官網上介紹如下:

它會返回乙個陣列,包含最多四個元素,但是並不會一直有四個,比如在沒有副檔名的情況下,就不會有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中獲取副檔名的N種方法

php中獲取副檔名的n種方法 從網上收羅的,基本上就以下這幾種方式 第1種方法 function get extension file 第2種方法 function get extension file 第3種方法 function get extension file 第4種方法 function...

PHP中獲取副檔名的N種方法

php中獲取副檔名的n種方法 從網上收羅的,基本上就以下這幾種方式 第1種方法 functionget extension file 第2種方法 functionget extension file 第3種方法 functionget extension file 第4種方法 functionget...

PHP中獲取副檔名的N種方法

php中獲取副檔名的n種方法 從網上收羅的,基本上就以下這幾種方式 第1種方法 function get extension file 第2種方法 function get extension file 第3種方法 function get extension file 第4種方法 function...