PHP取二进制文件头判断文件类型

发布时间:2020-07-30编辑:脚本学堂
用php取二进制文件头以判断文件类型的一段代码,有需要的朋友参考下。

例子,根据二进制头信信息判断文件类型。
 

复制代码 代码示例:
<?php
/**
* PHP取二进制文件头快速判断文件类型
*
* @param 文件 $file
* @return string
* @author lrenwang
* @blog    blog.lrenwang.com
*/
function get_extname($file)
{
  $fp = fopen($file, "rb");
  $bin = fread($fp, 2); //只读2字节
  fclose($fp);
  $bin_info  = @unpack("C2chars", $bin);
  $code = intval($bin_info['chars1'].$bin_info['chars2']);
  switch ($code) {
    case 7790:
      $type = 'exe';
      break;
    case 7784:
      $type = 'midi';
      break;
    case 8075:
      $type = 'zip';
      break;
    case 8297:
      $type = 'rar';
      break;
    case 255216:
      $type = 'jpg';
      break;
    case 7173:
      $type = 'gif';
      break;
    case 6677:
      $type = 'bmp';
      break;
    case 13780:
      $type = 'png';
      break;
    default:
      $type = $code;
      break;
  }
  return $type;
}
?>