多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 強大的php檢查文件類型

強大的php檢查文件類型

來源:程序員人生   發布時間:2014-01-05 20:01:19 閱讀次數:3874次

一個強大的文件類型檢測函數,它可以判斷你上傳的文件是什么類型,利用這個函數使用文件的類型沒有辦法偽裝過去,代碼如下:

  1.  * @access      public 
  2.  * @param       string      filename            文件名 
  3.  * @param       string      limit_ext_types     允許的文件類型,用|包圍的類型如:|gif|txt| 
  4.  * @return      string 
  5.  */<span id="more-472"></span> 
  6. function check_file_type($filename$limit_ext_types = ''){ 
  7.  $extname = strtolower(substr($filenamestrrpos($filename'.') + 1)); 
  8.  if ($limit_ext_types && 
  9.  stristr($limit_ext_types'|' . $extname . '|') === false){ 
  10.   return ''
  11.  } 
  12.  
  13.  $str = $format = ''
  14.  
  15.  $file = @fopen($filename'rb'); 
  16.  if ($file){ 
  17.   $str = @fread($file, 0x400); // 讀取前 1024 個字節 
  18.   @fclose($file); 
  19.  } 
  20.  else
  21.   $format=$extname
  22.  } 
  23.  
  24.  if ($format == '' && strlen($str) >= 2 ){ 
  25.   if (substr($str, 0, 4) == 'MThd' && $extname != 'txt'){ 
  26.    $format = 'mid'
  27.   } 
  28.   elseif (substr($str, 0, 4) == 'RIFF' && $extname == 'wav'){ 
  29.    $format = 'wav'
  30.   } 
  31.   elseif (substr($str ,0, 3) == "xFFxD8xFF"){ 
  32.    $format = 'jpg'
  33.   } 
  34.   elseif (substr($str ,0, 4) == 'GIF8' && $extname != 'txt'){ 
  35.    $format = 'gif'
  36.   } 
  37.   elseif (substr($str ,0, 8) == "x89x50x4Ex47x0Dx0Ax1Ax0A"){ 
  38.    $format = 'png'
  39.   } 
  40.   elseif (substr($str ,0, 2) == 'BM' && $extname != 'txt'){ 
  41.    $format = 'bmp'
  42.   } 
  43.   elseif ((substr($str ,0, 3) == 'CWS' || substr($str ,0, 3) == 'FWS'
  44.   && $extname != 'txt'){ 
  45.    $format = 'swf'
  46.   } 
  47.   elseif (substr($str ,0, 4) == "xD0xCFx11xE0"){   // D0CF11E == DOCFILE == Microsoft Office Document 
  48.    if (substr($str,0x200,4) == "xECxA5xC1x00" 
  49.    || $extname == 'doc'){ 
  50.     $format = 'doc'
  51.    } 
  52.    elseif (substr($str,0x200,2) == "x09x08" || $extname == 'xls'){ 
  53.     $format = 'xls'
  54.    } 
  55.    elseif (substr($str,0x200,4) == "xFDxFFxFFxFF" 
  56.    || $extname == 'ppt'){ 
  57.     $format = 'ppt'
  58.    } 
  59.   } 
  60.   elseif (substr($str ,0, 4) == "PKx03x04"){ 
  61.    $format = 'zip'
  62.   } 
  63.   elseif (substr($str ,0, 4) == 'Rar!' && $extname != 'txt'){ 
  64.    $format = 'rar'
  65.   } 
  66.   elseif (substr($str ,0, 4) == "x25PDF"){ 
  67.    $format = 'pdf'
  68.   } 
  69.   elseif (substr($str ,0, 3) == "x30x82x0A"){ 
  70.    $format = 'cert'
  71.   } 
  72.   elseif (substr($str ,0, 4) == 'ITSF' && $extname != 'txt'){ 
  73.    $format = 'chm'
  74.   } 
  75.   elseif (substr($str ,0, 4) == "x2ERMF"){ 
  76.    $format = 'rm'
  77.   } 
  78.   elseif ($extname == 'sql'){ 
  79.    $format = 'sql'
  80.   } 
  81.   elseif ($extname == 'txt'){ 
  82.    $format = 'txt'
  83.   } 
  84.  } 
  85.  
  86.  if ($limit_ext_types && 
  87.  stristr($limit_ext_types'|' . $format . '|') === false){ 
  88.   $format = ''
  89.  } 
  90.  
  91.  return $format
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 最近最新视频中文字幕4 | 视频一区二区三区自拍 | 欧美专区在线视频 | 久久欧美久久欧美精品 | 国产日韩亚洲欧美 | 日本高清另类videohd | 免费看h的网站 | 尤物在线看 | 国产欧美成人免费观看 | 亚洲a区视频 | 亚洲在线资源 | 午夜福利毛片 | 欧美黑人性xxx猛交 欧美黑人性猛交 | 欧美成人免费观看国产 | 老司机午夜性大片 | 欧洲美女性做爰 | 亚洲日韩aⅴ在线视频 | 精品日韩一区二区 | 亚洲人成网站在线播放观看 | 999毛片免费观看 | 日本中文字幕免费 | 国产第一页福利 | 亚洲精品福利在线 | 亚洲天堂女人 | 欧美午夜三级我不卡在线观看 | 亚洲欧美天堂网 | 亚洲国产精品第一区二区 | 最近中文字幕2019免费版日本 | 国产在线拍揄自揄视精品不卡 | 欧美日本在线 | 一级毛片不卡 | 噜噜影院 | 69xxxx女人免费 | 中文字幕在线精品视频入口一区 | 亚洲欧美日韩中文字幕在线 | 欧美亚洲欧美日韩中文二区 | 色老头久久久久久久久久 | 日本一区二区三区不卡在线看 | 色老成人精品视频在线观看 | 亚洲天堂中文网 | 美女毛片网站 |