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 相关文章推荐
ftp类(example.php)
Oct 09 PHP
PHP安装攻略:常见问题解答(一)
Oct 09 PHP
WHOIS类的修改版
Oct 09 PHP
PHP simple_html_dom.php+正则 采集文章代码
Dec 24 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
php生成excel列序号代码实例
Dec 24 PHP
destoon二次开发入门示例
Jun 20 PHP
php Imagick获取图片RGB颜色值
Jul 28 PHP
php生成gif动画的方法
Nov 05 PHP
基于Laravel-admin 后台的自定义页面用法详解
Sep 30 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
Oct 16 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
Oct 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
php数组函数序列之array_unshift() 在数组开头插入一个或多个元素
2011/11/07 PHP
php中利用explode函数分割字符串到数组
2014/02/08 PHP
php中将一段数据存到一个txt文件中并显示其内容
2014/08/15 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
js 获取、清空input type=&quot;file&quot;的值示例代码
2014/02/19 Javascript
基于jQuery创建鼠标悬停效果的方法
2015/03/07 Javascript
JS动态显示表格上下frame的方法
2015/03/31 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
用jquery获取select标签中选中的option值及文本的示例
2018/01/25 jQuery
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
vue-cli基础配置及webpack配置修改的完整步骤
2019/10/20 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
vue 动态设置img的src地址无效,npm run build 后找不到文件的解决
2020/07/26 Javascript
python避免死锁方法实例分析
2015/06/04 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
python用户评论标签匹配的解决方法
2018/05/31 Python
小白入门篇使用Python搭建点击率预估模型
2018/10/12 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
Python3 把一个列表按指定数目分成多个列表的方式
2019/12/25 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
python 利用zmail库发送邮件
2020/09/11 Python
草莓网美国官网:Strawberrynet USA
2016/12/11 全球购物
中秋节超市促销方案
2014/01/30 职场文书
给医院的感谢信
2015/01/21 职场文书
环保建议书作文500字
2015/09/14 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS