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输出数组中重名的元素的几种处理方法
Sep 05 PHP
PHP 文件系统详解
Sep 13 PHP
php中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
解析PHP跨站刷票的实现代码
Jun 18 PHP
解析thinkphp中的M()与D()方法的区别
Jun 22 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
php画图实例
Nov 05 PHP
PHP随机生成唯一HASH值自定义函数
Apr 20 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP如何读取由JavaScript设置的Cookie
Mar 22 PHP
CodeIgniter框架数据库基本操作示例
May 24 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 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
php读取文件内容的方法汇总
2015/01/24 PHP
PHP判断是否为空的几个函数对比
2015/04/21 PHP
PHP中的事务使用实例
2015/05/26 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
js图片预加载示例
2014/04/30 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
2019/01/23 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python提取页面内url列表的方法
2015/05/25 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python Numpy 自然数填充数组的实现
2019/11/28 Python
Python编写一个验证码图片数据标注GUI程序附源码
2019/12/09 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
numpy实现RNN原理实现
2021/03/02 Python
CSS3 Media Queries详细介绍和使用实例
2014/05/08 HTML / CSS
HTML里显示pdf、word、xls、ppt的方法示例
2020/04/14 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
《小松树和大松树》教学反思
2014/02/20 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
乡镇安全生产目标责任书
2014/07/23 职场文书
单位在职证明书
2014/09/11 职场文书
2014年教师个人工作总结
2014/11/10 职场文书
2015年度优秀员工自荐书
2015/03/06 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
进行数据处理的6个 Python 代码块分享
2022/04/06 Python