首页 > PHP教程 > php开发知识文章

php 不通过文件扩展名判断文件的类型

本文介绍了php 不通过文件扩展名判断文件的类型的方法,使用finfo_file函数与二进制流判断文件类型,欢迎大家的学习。

finfo_file函数

$finfo = finfo_open(FILEINFO_MIME_TYPE); // 返回 mime 类型
echo finfo_file($finfo, $filename);
finfo_close($finfo);

 

二进制流

通过二进制流获取文件内容

$fp = fopen('a.php', 'r');
$bin = fread($fp, 2); //2字节
fclose($fp);
//解包二进制数据
$str_info = @unpack('C2chars', $bin);
$type_code = intval($str_info['chars1'] . $str_info['chars2']);
$file_type = '';
switch ($type_code) {
case 7790:
$file_type = 'exe';
break;
case 7784:
$file_type = 'midi';
break;
case 8075:
$file_type = 'zip';
break;
case 8297:
$file_type = 'rar';
break;
case 255216:
$file_type = 'jpg';
break;
case 7173:
$file_type = 'gif';
break;
case 6677:
$file_type = 'bmp';
break;
case 13780:
$file_type = 'png';
break;
default:
$file_type = 'unknown';
break;
}

echo $file_type;

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php文件操作总结》、《PHP网络编程技巧总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

以上就是本文php 不通过文件扩展名判断文件的类型的全部内容,希望本文所述对大家PHP程序设计有所帮助。

关闭
感谢您的支持,我会继续努力!
扫码打赏,建议金额1-10元


提醒:打赏金额将直接进入对方账号,无法退款,请您谨慎操作。