Home  >  Article  >  Backend Development  >  PHP code sharing to determine file type based on file header

PHP code sharing to determine file type based on file header

WBOY
WBOYOriginal
2016-07-25 08:57:011210browse
In many PHP programs, extensions are often used to determine file types. The method introduced in this article is to read the file header to determine the file type. It supports image, rar, exe and other suffixes. Friends in need can refer to it.

php reads the file header to determine the file type, and supports image (jpg, gif, png), rar, exe and other suffixes. Code:

<?php 
//读取文件头来判断文件类型
//by bbs.it-home.org
$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;
?>

Example:

<?php
//方法二
//用mime_content_type函数判断文件类型
echo mime_content_type('11.gif') . "\n";
echo mime_content_type('22.php');
?>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn