PHP File:Mime
PHP File:Mime是一個PHP擴展,它的作用是檢測文件的MIME類型。MIME類型是Internet標準里描述數據類型的機制,它是由Internet Assigned Numbers Authority(IANA)維護列表,統一下載全部擴展名:
//引入擴展 extension=php_fileinfo.dll
使用PHP File:Mime進行MIME類型檢測時,我們可以通過以下函數來實現:
bool finfo_file(resource finfo, string filename [, int options = FILEINFO_NONE [, resource context]] )
finfo是文件類型信息資源,通過使用finfo_open()函數來獲得。filename是指文件名,options是指可選的文件類型的常量,context是指上下文資源的選擇(目前這個參數似乎已經不再使用了,可以將它忽略掉)。
舉例,我們可以通過以下示例來演示如何使用PHP File:Mime來查找一個文件的MIME類型:
$finfo = finfo_open(FILEINFO_MIME_TYPE); $filename = 'test.jpg'; $result = finfo_file($finfo, $filename); finfo_close($finfo); echo $result;
執行以上PHP代碼后,我們可以得到文件mime類型為"image/jpeg"。
除了檢測一個文件的MIME類型以外,PHP File:Mime還能夠檢測一個數據流的MIME類型,我們可以通過以下函數來實現:
bool finfo_buffer(resource finfo, string string [, int options = FILEINFO_NONE [, resource context]] )
同樣,finfo是文件類型信息資源,這個資源可以通過使用finfo_open()函數來獲得。string是指二進制數據。options是指可選的文件類型的常量,context是指上下文資源的選擇(目前這個參數似乎已經不再使用了,可以將它忽略掉)。
舉例,我們可以通過以下PHP代碼來演示如何使用PHP File:Mime來查找一個數據流的MIME類型:
$finfo = finfo_open(FILEINFO_MIME_TYPE); $string = file_get_contents('test.jpg'); $result = finfo_buffer($finfo, $string); finfo_close($finfo); echo $result;
執行以上PHP代碼后,我們可以得到數據流mime類型為"image/jpeg"。
需要注意的一點是,在使用PHP File:Mime來查找文件的MIME類型的時候,需要先確保finfo庫已經被安裝和啟用。這可以通過查看php.ini文件來查找,如果你的php.ini文件沒有相關配置,可以考慮手動安裝該庫。
總結
PHP File:Mime是一個PHP擴展,它能夠檢測文件和數據流的MIME類型。我們可以通過使用finfo_file()和finfo_buffer()函數來實現這個功能。在使用這個擴展的時候,需要確保finfo庫已經被安裝和啟用。