php獲取文件類型和文件信息的方法
本文實例講述了php獲取文件類型和文件信息的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
<?php
$file = "php.txt";
//打開文件,r表示以只讀方式打開
$handle = fopen($file,"r");
//獲取文件的統(tǒng)計信息
$fstat = fstat($handle);
echo "文件名:".basename($file)."<br>";
//echo "文件大小:".round(filesize("$file")/1024,2)."kb<br>";
echo "文件大?。?.round($fstat["size"]/1024,2)."kb<br>";
//echo "最后訪問時間:".date("Y-m-d h:i:s",fileatime($file))."<br>";
echo "最后訪問時間:".date("Y-m-d h:i:s",$fstat["atime"])."<br>";
//echo "最后修改時間:".date("Y-m-d h:i:s",filemtime($file))."<br>";
echo "最后修改時間:".date("Y-m-d h:i:s",$fstat["mtime"]);
?>
何為MIME類型,它是設(shè)定某種擴展名的文件用一種應(yīng)用程序來打開的方式類型,當該擴展名文件被訪問時,瀏覽器會自動使用指定應(yīng)用程序來打開。
多用于指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。
參考鏈接:php文件格式(mime類型)對照表 。
1、mime_content_type()函數(shù)判斷獲取mime類型
mime_content_type返回指定文件的MIME類型,用法:
echo mime_content_type ( 'php.gif' ) . "\n" ; echo mime_content_type ( 'test.php' );
輸出:
image/gif
text/plain
但是php 5.3.0已經(jīng)將該函數(shù)廢棄。如果仍想使用此函數(shù),那么可以對php進行配置啟用magic_mime擴展。
2、php Fileinfo 獲取文件MIME類型(finfo_open)
PHP官方推薦mime_content_type()的替代函數(shù)是Fileinfo函數(shù)。PHP 5.3.0+已經(jīng)默認支持Fileinfo函數(shù)(fileinfo support-enabled),不必進行任何配置即可使用finfo_open()判斷獲取文件MIME類型。用法:
$finfo = finfo_open(FILEINFO_MIME); $mimetype = finfo_file($finfo, $filename); finfo_close($finfo);
3、image_type_to_mime_type()獲取圖片MIME類型
如果需要判斷MIME類型的文件只有圖像文件,那么首先可以使用exif_imagetype()函數(shù)獲取圖像類型常量,再用image_type_to_mime_type()函數(shù)將圖像類型常量轉(zhuǎn)換成圖片文件的MIME類型。
注意:需要在php.ini中配置打開php_mbstring.dll(Windows需要)和extension=php_exif.dll。
4、php上傳文件獲取MIME類型
如果使用php上傳文件,檢測上傳文件的MIME類型,則可以使用全局變量$_FILES['uploadfile']['type'],由客戶端的瀏覽器檢測獲取文件MIME類型。
5、通過文件擴展名判斷文件類型
<?php
$filename = "D:\\296.mid";
$file = fopen($filename, "rb");
$bin = fread($file, 2); //只讀2字節(jié)
fclose($file);
$strInfo = @unpack("c2chars", $bin);
$typeCode = intval($strInfo['chars1'].$strInfo['chars2']);
$fileType = '';
switch ($typeCode)
{
case 7790:
$fileType = 'exe';
break;
case 7784:
$fileType = 'midi';
break;
case 8297:
$fileType = 'rar';
break;
case 255216:
$fileType = 'jpg';
break;
case 7173:
$fileType = 'gif';
break;
case 6677:
$fileType = 'bmp';
break;
case 13780:
$fileType = 'png';
break;
default:
echo 'unknown';
}
echo 'this is a(an) '.$fileType.' file:'.$typeCode;
?>
以上就是PHP 文件類型判斷的幾種方法,如果你有更好的方法,可以留言
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
Server.HTMLEncode讓代碼在頁面里顯示為源代碼
這篇文章為大家介紹的是把寫入數(shù)據(jù)庫的html源代碼以html源編碼的形式顯示在頁面里面,這個是asp中的函數(shù)2013-12-12
php實現(xiàn)無限級分類實現(xiàn)代碼(遞歸方法)
近期做的一個網(wǎng)站需要一個無限級下拉列表的無限級分級功能,于是就有了下面的作品。2011-01-01
PHP自定義函數(shù)實現(xiàn)assign()數(shù)組分配到模板及extract()變量分配到模板功能示例
這篇文章主要介紹了PHP自定義函數(shù)實現(xiàn)assign()數(shù)組分配到模板及extract()變量分配到模板功能,可模擬tp框架中模板變量分配功能,涉及php基于面向?qū)ο蟮臄?shù)組賦值相關(guān)操作技巧,需要的朋友可以參考下2018-05-05

