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执行速度全攻略(下)
Oct 09 PHP
php SQL防注入代码集合
Apr 25 PHP
php设计模式 Delegation(委托模式)
Jun 26 PHP
php遍历所有文件及文件夹的方法深入解析
Jun 08 PHP
php获取目录所有文件并将结果保存到数组(实例)
Oct 25 PHP
php强制运行广告的方法
Dec 01 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
PHP中preg_match函数正则匹配的字符串长度问题
May 27 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
浅谈php://filter的妙用
Mar 05 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 PHP
PHP设计模式之迭代器模式Iterator实例分析【对象行为型】
Apr 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
让codeigniter与swfupload整合的最佳解决方案
2014/06/12 PHP
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
JS排序之选择排序详解
2017/04/08 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
vue.js实现价格格式化的方法
2017/05/23 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
jQuery实现的电子时钟效果完整示例
2018/04/28 jQuery
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
使用Karma做vue组件单元测试的实现
2020/01/16 Javascript
JS字符串和数组如何实现相互转化
2020/07/02 Javascript
[01:06:42]VP vs NewBee Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python读取mp3中ID3信息的方法
2015/03/05 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python工厂函数用法实例分析
2018/05/14 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
python中numpy数组与list相互转换实例方法
2021/01/29 Python
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
String和StringBuffer的区别
2015/08/13 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
农业生产宣传标语
2014/10/08 职场文书
影视后期实训报告
2014/11/05 职场文书
离婚起诉状范本
2015/05/19 职场文书
幼儿园老师新年寄语
2015/08/17 职场文书
详解Redis瘦身指南
2021/05/26 Redis