php获取文件类型和文件信息的方法


Posted in PHP onJuly 10, 2015

本文实例讲述了php获取文件类型和文件信息的方法。分享给大家供大家参考。具体实现方法如下:

<?php
$file = "php.txt";
//打开文件,r表示以只读方式打开
$handle = fopen($file,"r");
//获取文件的统计信息
$fstat = fstat($handle);
echo "文件名:".basename($file)."<br>";
//echo "文件大小:".round(filesize("$file")/1024,2)."kb<br>";
echo "文件大小:".round($fstat["size"]/1024,2)."kb<br>";
//echo "最后访问时间:".date("Y-m-d h:i:s",fileatime($file))."<br>";
echo "最后访问时间:".date("Y-m-d h:i:s",$fstat["atime"])."<br>";
//echo "最后修改时间:".date("Y-m-d h:i:s",filemtime($file))."<br>";
echo "最后修改时间:".date("Y-m-d h:i:s",$fstat["mtime"]);
?>

何为MIME类型,它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。
多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

参考链接:php文件格式(mime类型)对照表 。

1、mime_content_type()函数判断获取mime类型
mime_content_type返回指定文件的MIME类型,用法:

echo mime_content_type ( 'php.gif' ) . "\n" ;
echo mime_content_type ( 'test.php' );

输出:
image/gif
text/plain

但是php 5.3.0已经将该函数废弃。如果仍想使用此函数,那么可以对php进行配置启用magic_mime扩展。

2、php Fileinfo 获取文件MIME类型(finfo_open)

PHP官方推荐mime_content_type()的替代函数是Fileinfo函数。PHP 5.3.0+已经默认支持Fileinfo函数(fileinfo support-enabled),不必进行任何配置即可使用finfo_open()判断获取文件MIME类型。用法:

$finfo = finfo_open(FILEINFO_MIME);
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);

3、image_type_to_mime_type()获取图片MIME类型

如果需要判断MIME类型的文件只有图像文件,那么首先可以使用exif_imagetype()函数获取图像类型常量,再用image_type_to_mime_type()函数将图像类型常量转换成图片文件的MIME类型。
注意:需要在php.ini中配置打开php_mbstring.dll(Windows需要)和extension=php_exif.dll。

4、php上传文件获取MIME类型
如果使用php上传文件,检测上传文件的MIME类型,则可以使用全局变量$_FILES['uploadfile']['type'],由客户端的浏览器检测获取文件MIME类型。

5、通过文件扩展名判断文件类型

<?php 
$filename = "D:\\296.mid"; 
$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 'this is a(an) '.$fileType.' file:'.$typeCode; 
?>

以上就是PHP 文件类型判断的几种方法,如果你有更好的方法,可以留言

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP扩展编写点滴 技巧收集
Mar 09 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
PHP echo,print,printf,sprintf函数之间的区别与用法详解
Nov 27 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
PHP内核探索之变量
Dec 22 PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
php生成二维码图片方法汇总
Dec 17 PHP
thinkPHP框架中执行原生SQL语句的方法
Oct 25 PHP
PHP实现对数字分隔加千分号的方法
Mar 18 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
Mar 21 PHP
PHP whois查询类定义与用法示例
Apr 03 PHP
php中实现用数组妩媚地生成要执行的sql语句
Jul 10 #PHP
PHP中把对象数组转换成普通数组的方法
Jul 10 #PHP
codeigniter实现get分页的方法
Jul 10 #PHP
PHP基于phpqrcode生成带LOGO图像的二维码实例
Jul 10 #PHP
php基于Snoopy解析网页html的方法
Jul 09 #PHP
php生成固定长度纯数字编码的方法
Jul 09 #PHP
php随机获取金山词霸每日一句的方法
Jul 09 #PHP
You might like
ip签名探针
2006/10/09 PHP
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
基于jquery的textarea发布框限制文字字数输入(添加中文识别)
2012/02/16 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
js实现无限级树形导航列表效果代码
2015/09/23 Javascript
前端性能优化及技巧
2016/05/06 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
使用async-validator编写Form组件的方法
2018/01/10 Javascript
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
[03:17]2016完美“圣”典风云人物:冷冷专访
2016/12/08 DOTA
Python引用模块和查找模块路径
2016/03/17 Python
一道python走迷宫算法题
2018/01/22 Python
python验证码识别教程之利用滴水算法分割图片
2018/06/05 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
2019/01/07 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python修改DBF文件指定列
2020/12/19 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
Vilebrequin美国官方网上商店:法国豪华泳装品牌
2020/02/22 全球购物
explicit和implicit的含义
2012/11/15 面试题
现金会计岗位职责
2013/12/05 职场文书
股份合作协议书范本
2014/04/14 职场文书
社区维稳工作方案
2014/06/06 职场文书
地震捐款倡议书
2014/08/29 职场文书
2014企业年终工作总结
2014/12/23 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书