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 4.2书写安全的脚本
Oct 09 PHP
怎样在UNIX系统下安装MySQL
Oct 09 PHP
可以在线执行PHP代码包装修正版
Mar 15 PHP
PHP简洁函数小结
Aug 12 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
PHP实现的交通银行网银在线支付接口ECSHOP插件和使用例子
May 10 PHP
PHP循环遍历数组的3种方法list()、each()和while总结
Nov 19 PHP
php include类文件超时问题处理
Feb 06 PHP
php实现的日历程序
Jun 18 PHP
thinkPHP基于ajax实现的菜单与分页示例
Jul 12 PHP
php lcg_value与mt_rand生成0~1随机小数的效果对比分析
Apr 05 PHP
详细解读php的命名空间(二)
Feb 21 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
MySQL GBK→UTF-8编码转换
2007/05/24 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
开启PHP的伪静态模式
2015/12/31 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
jquery动画1.加载指示器
2012/08/24 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
jQuery中next()方法用法实例
2015/01/07 Javascript
浅谈javascript实现八大排序
2015/04/27 Javascript
Bootstrap精简教程
2015/11/27 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
深入理解React中何时使用箭头函数
2017/08/23 Javascript
详解http访问解析流程原理
2017/10/18 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
JS实现监控微信小程序的原理
2018/06/15 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
[59:08]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第一局
2016/02/27 DOTA
Python代码解决RenderView窗口not found问题
2016/08/28 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Random 在 Python 中的使用方法
2018/08/09 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
在加拿大在线租赁和购买电子游戏:Game Access
2019/09/02 全球购物
竞选部长演讲稿
2014/04/26 职场文书
旅游节目策划方案
2014/05/26 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
2015年大学班长个人工作总结
2015/04/24 职场文书
芙蓉镇观后感
2015/06/10 职场文书
大学生见习总结报告
2015/06/24 职场文书
学习经验交流会策划书
2015/11/02 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书