久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      php怎么獲取文件類型(不通過后綴)

      獲取文件類型的方法:1、使用“$_FILES['uploadfile']['type']”語句;2、使用“finfo_file(finfo_open(FILEINFO_MIME),文件路徑)”語句;3、通過讀取文件頭六個字節(jié)來進(jìn)行判斷。

      php怎么獲取文件類型(不通過后綴)

      本教程操作環(huán)境:windows7系統(tǒng)、PHP7.1版、DELL G3電腦

      php獲取文件類型(不通過后綴)

      方法1:$_FILES

      如果是php上傳文件,則可以用$_FILES['uploadfile']['type']來獲取文件類型,但是同樣會存在和pathinfo同樣的問題,該方法僅僅只能根據(jù)文件后綴來判斷文件類型。

      方法2:php Fileinfo 獲取文件MIME類型(finfo_open)

      代碼示例:

      <?php 	$finfo = finfo_open(FILEINFO_MIME); // 返回 mime 類型     $filename = '.Uploads2.zip';     var_dump(finfo_file($finfo, $filename));     finfo_close($finfo);     die;

      返回結(jié)果:

      php怎么獲取文件類型(不通過后綴)

      說明: 如果文件存在則返回文件類型,否則返回false。該方法需要php5.3.0+版本??梢愿鶕?jù)返回的結(jié)果來判斷是什么類型的文件。該方法即便是原文件被改過后綴,已然可以讀到原文件類型。

      方法3:讀取文件頭六個字節(jié)作為判斷

      <?php // 官方示例 function minimime($fname) {     $fh=fopen($fname,'rb');     if ($fh) {          $bytes6=fread($fh,6);         fclose($fh);          if ($bytes6===false) return false;         if (substr($bytes6,0,3)=="xffxd8xff") return 'image/jpeg';         if ($bytes6=="x89PNGx0dx0a") return 'image/png';         if ($bytes6=="GIF87a" || $bytes6=="GIF89a") return 'image/gif';         return 'application/octet-stream';     }     return false; } // 將文件頭4個字節(jié)轉(zhuǎn)換成16進(jìn)制判斷 function fileType($filename) {     // 讀取文件的前4個字節(jié),根據(jù)硬編碼判斷     $file = fopen ( $filename, "rb" );     $strFile = fread ( $file, 4 ); //只讀文件頭4字節(jié)     fclose ( $file );     $strInfo = @unpack ( "C4chars", $strFile );       //dechex(),把十進(jìn)制轉(zhuǎn)換為十六進(jìn)制。       $code = dechex ( $strInfo ['chars1'] ) .                dechex ( $strInfo ['chars2'] ) .                dechex ( $strInfo ['chars3'] ) .    		    dechex ( $strInfo ['chars4'] );       $type = '';       switch ($code) //硬編碼值查表       {         case "504b34" :               $type = 'application/zip; charset=binary';               break;         case "89504e47" :             $type = 'image/png; charset=binary';               break;          default :             $type = false;               break;     }     return $type; }

      說明: 這個方法有缺陷,不同類型的文件,文件頭4個字節(jié)可能會相同,并且部分文件類型表示文件類型的字符串,少于4個字節(jié)??梢钥紤]將方法2和方法3結(jié)合使用。

      文件類型硬編碼值的對照表:http://www.garykessler.net/library/file_sigs.html
      (對照表的英文大寫要改成小寫,第一個數(shù)字為0時要省略,eg:504B0304讀到的是504b34)

      擴(kuò)展知識:通過后綴獲取文件類型

      pathinfo方法

      代碼示例:

      /**  * 獲取文件后綴(如果文件名為11.11,11不是后綴,會默認(rèn)11為后綴) * $file string 文件路徑或者文件名 */ function get_extension($file){ return pathinfo($file, PATHINFO_EXTENSION);

      說明: pathinfo具體使用方法,可以查看php手冊。但是該方法僅僅只能根據(jù)文件后綴來判斷文件類型,如果html后綴的文件,被修改成.php的后綴之后,讀取到的則是php類型文件。

      推薦學(xué)習(xí):《PHP視頻教程》

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號