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


Posted in PHP onAugust 05, 2013

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');
?>
PHP 相关文章推荐
如何在PHP中使用Oracle数据库(6)
Oct 09 PHP
php 购物车实例(申精)
May 11 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
thinkphp缓存技术详解
Dec 09 PHP
PHP实现的sqlite数据库连接类
Dec 12 PHP
php批量删除cookie的简单实现方法
Jan 26 PHP
php去除字符串中空字符的常用方法小结
Mar 17 PHP
php实现XML和数组的相互转化功能示例
Feb 08 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 PHP
PHP取二进制文件头快速判断文件类型的实现代码
Aug 05 #PHP
深入解析PHP 5.3.x 的strtotime() 时区设定 警告信息修复
Aug 05 #PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 #PHP
解析php mysql 事务处理回滚操作(附实例)
Aug 05 #PHP
php多层数组与对象的转换实例代码
Aug 05 #PHP
注意:php5.4删除了session_unregister函数
Aug 05 #PHP
PHP中fwrite与file_put_contents性能测试代码
Aug 02 #PHP
You might like
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
PHP 信号管理知识整理汇总
2017/02/19 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
jQuery.validate 常用方法及需要注意的问题
2013/03/20 Javascript
javascript移动设备Web开发中对touch事件的封装实例
2014/06/05 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
JavaScript登录验证基础教程
2017/11/01 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
说一说Python logging
2016/04/15 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
对Python3中的print函数以及与python2的对比分析
2018/05/02 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
Python设计模式之桥接模式原理与用法实例分析
2019/01/10 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
科颜氏印度官网:Kiehl’s印度
2021/02/20 全球购物
人事专员职责
2014/02/22 职场文书
法定代表人授权委托书范文
2014/08/02 职场文书
向国旗敬礼活动总结
2014/09/27 职场文书
典型事迹材料范文
2014/12/29 职场文书
学校体育节班级口号
2015/12/25 职场文书
劳动合同变更协议书范本
2019/04/18 职场文书
Nginx下SSL证书安装部署步骤介绍
2021/12/06 Servers
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
Java死锁的排查
2022/05/11 Java/Android