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
同时提取多条新闻中的文本一例
Oct 09 PHP
php 保留小数点
Apr 21 PHP
PHP mb_convert_encoding 获取字符串编码类型实现代码
Apr 26 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
如何获知PHP程序占用多少内存(memory_get_usage)
Sep 23 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
Thinkphp3.2.3分页使用实例解析
Jul 28 PHP
php实现支持中文的文件下载功能示例
Aug 30 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
php结合飞信 免费天气预报短信
2009/05/07 PHP
用php制作简单分页(从数据库读取记录)的方法详解
2013/05/04 PHP
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
ThinkPHP框架实现数据增删改
2017/05/07 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP实现微信退款功能
2018/10/02 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
将字符串中由空格隔开的每个单词首字母大写
2014/04/06 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
jQuery插件zTree实现单独选中根节点中第一个节点示例
2017/03/08 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
基于Vue插入视频的2种方法小结
2019/04/02 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
Python使用LDAP做用户认证的方法
2019/06/20 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
python配置文件写入过程详解
2019/10/19 Python
windows环境中利用celery实现简单任务队列过程解析
2019/11/29 Python
详解python常用命令行选项与环境变量
2020/02/20 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
如何开发安全的AJAX应用
2014/03/26 面试题
如何执行一个shell程序
2012/11/23 面试题
医护人员英文求职信范文
2013/11/26 职场文书
《逃家小兔》教学反思
2014/02/23 职场文书
会计与出纳自荐书范文
2014/03/16 职场文书
六年级数学教学反思
2016/02/16 职场文书
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
2021/05/21 Redis
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技