php通过文件头判断格式的方法


Posted in PHP onMay 28, 2016

本文实例讲述了php通过文件头判断格式的方法。分享给大家供大家参考,具体如下:

function judgeFile($file,$form){
if(!empty($file) && !empty($form)){
$filehead = fopen($file,'r');
$bin = fread($filehead, 2);
fclose($filehead);
$data = unpack('C2chars', $bin);
$type_code = intval($data['chars1'].$data['chars2']);
switch ($type_code) {
case 7790: $fileType = 'exe';break;
  case 7784: $fileType = 'midi';break;
  case 8075: $fileType = 'zip';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: $fileType = 'unknown';break;
}
if(!is_array($form)){
if($fileType==$form){
return true;
}else{
return false;
}
}else{
if(in_array($file, $form)){
return true;
}else{
return FALSE;
}
}
}else{
return false;
}
}
PHP 相关文章推荐
PHP 5.0对象模型深度探索之对象复制
Mar 27 PHP
PHP 数组入门教程小结
May 20 PHP
PHP 可阅读随机字符串代码
May 26 PHP
PHP源代码数组统计count分析
Aug 02 PHP
php 抽象类的简单应用
Sep 06 PHP
PHP中获取时间的下一周下个月的方法
Mar 18 PHP
PHP加密解密字符串汇总
Apr 26 PHP
php similar_text()函数的定义和用法
May 12 PHP
PHP学习笔记之php文件操作
Jun 03 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php使用file函数、fseek函数读取大文件效率对比分析
Nov 04 PHP
Zend Framework实现自定义过滤器的方法
Dec 09 PHP
Thinkphp自定义代码生成工具及用法说明(附下载地址)
May 27 #PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 #PHP
php使用pdo连接sqlite3的配置示例
May 27 #PHP
php使用number_format函数截取小数的方法分析
May 27 #PHP
php中关于长度计算容易混淆的问题分析
May 27 #PHP
Centos6.5和Centos7 php环境搭建方法
May 27 #PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
May 27 #PHP
You might like
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
一些相见恨晚的 JavaScript 技巧
2010/04/25 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
2017/08/16 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
vue 出现data-v-xxx的原因及解决
2020/08/04 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
js实现批量删除功能
2020/08/27 Javascript
Python线程的两种编程方式
2015/04/14 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
浅谈django rest jwt vue 跨域问题
2018/10/26 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
股权收购意向书
2014/04/01 职场文书
企业宗旨标语
2014/06/10 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
黄山导游词
2015/01/31 职场文书
水浒传读书笔记
2015/06/25 职场文书
日元符号 ¥
2022/02/17 杂记