php 读取文件头判断文件类型的实现代码

  php代码实现读取文件头判断文件类型,支持图片、rar、exe等后缀。

  案例:

  

复制代码 代码如下:

  <?php $filename = "11.jpg";

  //为图片的路径可以用d:/upload/11.jpg等绝对路径

  $file = fopen($filename, "rb");

  $bin = fread($file, 2); //只读2字节

  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'这是一个'.$fileType.' file:'.$typeCode;

  案例:

  

复制代码 代码如下:

  ?>

  //linux下php还有个函数可以判断文件类型

  <?php

  echo mime_content_type('11.gif') . "\n";

  echo mime_content_type('22.php');

  ?>