php實(shí)現(xiàn)不通過擴(kuò)展名準(zhǔn)確判斷文件類型的方法【finfo_file方法與二進(jìn)制流】
本文實(shí)例講述了php實(shí)現(xiàn)不通過擴(kuò)展名準(zhǔn)確判斷文件類型的方法。分享給大家供大家參考,具體如下:
第一種方法
通過php的finfo_file()
$handle=finfo_open(FILEINFO_MIME_TYPE);//This function opens a magic database and returns its resource. $fileInfo=finfo_file($handle,'./test.txt');// Return information about a file finfo_close($handle); print_r($fileInfo); echo '==========="\n"';
另外
finfo_buffer: Return information about a string buffer
finfo_close: Close fileinfo resource
mime_content_type:Detect MIME Content-type for a file (deprecated)
第二種方法
通過二進(jìn)制流獲取文件內(nèi)容
$fp=fopen('test.txt','r')///實(shí)際是image/png $bin = fread($fp, 2); //只讀2字節(jié) fclose($fp); $str_info = @unpack(“C2chars”, $bin);//Unpack data from binary string $type_code = intval($str_info['chars1'].$str_info['chars2']);// Get the integer value of a variable $file_type = ”; switch ($type_code) { case 7790: $file_type = 'exe'; break; case 7784: $file_type = 'midi'; break; case 8075: $file_type = 'zip'; break; case 8297: $file_type = 'rar'; break; case 255216: $file_type = 'jpg'; break; case 7173: $file_type = 'gif'; break; case 6677: $file_type = 'bmp'; break; case 13780: $file_type = 'png'; break; default: $file_type = 'unknown'; break; }
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php文件操作總結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。
- PHP中獲取文件擴(kuò)展名的N種方法小結(jié)
- php獲取文件名稱和擴(kuò)展名的方法
- PHP獲取文件擴(kuò)展名的4種方法
- php更改目錄及子目錄下所有的文件后綴擴(kuò)展名的代碼
- php獲得文件擴(kuò)展名三法
- php文件擴(kuò)展名判斷及獲取文件擴(kuò)展名的N種方法
- php從給定url獲取文件擴(kuò)展名的方法
- PHP獲取文件擴(kuò)展名的方法實(shí)例總結(jié)
- PHP實(shí)現(xiàn)的獲取文件mimes類型工具類示例
- php準(zhǔn)確獲取文件MIME類型的方法
- php實(shí)現(xiàn)獲取文件mime類型的方法
- PHP獲取文件擴(kuò)展名的常用方法小結(jié)【五種方式】
相關(guān)文章
PHP加密函數(shù) Javascript/Js 解密函數(shù)
php加密,js解密,貌似沒什么意義,主要是key在js中會被看到,不過在某些地方可能會用到2013-09-09PHP獲取表單textarea數(shù)據(jù)中的換行問題
閑來無事,在網(wǎng)上看到一篇關(guān)于php表單轉(zhuǎn)換textarea換行符的文章,看完后,根據(jù)以往經(jīng)驗(yàn),感覺上這篇文章中的一些信息并不準(zhǔn)確...于是便自己親自對php獲取表單數(shù)據(jù)中的換行符問題進(jìn)行研究2010-09-09工廠模式在Zend Framework中應(yīng)用介紹
在Zend Framework中,使用了多種設(shè)計(jì)模式。其中對數(shù)據(jù)庫的封裝,用到了工廠模式2012-07-07PHP正則表達(dá)式匹配替換與分割功能實(shí)例淺析
這篇文章主要介紹了PHP正則表達(dá)式匹配替換與分割功能,簡單分析了php正則匹配、替換與分割相關(guān)函數(shù),并結(jié)合實(shí)例形式演示了php正則匹配的相關(guān)操作技巧,需要的朋友可以參考下2017-02-02在WordPress中使用wp_count_posts函數(shù)來統(tǒng)計(jì)文章數(shù)量
這篇文章主要介紹了在WordPress中使用wp_count_posts函數(shù)來統(tǒng)計(jì)文章數(shù)量的方法,同時也可以統(tǒng)計(jì)草稿及頁面的數(shù)量,相當(dāng)實(shí)用,需要的朋友可以參考下2016-01-01