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 相关文章推荐
IIS+PHP+MySQL+Zend配置 (视频教程)
Dec 13 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP 的ArrayAccess接口 像数组一样来访问你的PHP对象
Oct 12 PHP
解析PHP中数组元素升序、降序以及重新排序的函数
Jun 20 PHP
解析php中eclipse 用空格替换 tab键
Jun 24 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
解决form中action属性后面?传递参数 获取不到的问题
Jul 21 PHP
PHP+Session防止表单重复提交的解决方法
Apr 09 PHP
PHP耦合设计模式实例分析
Aug 08 PHP
PHP+ajax实现二级联动菜单功能示例
Aug 10 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 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
基于PHP静态类的原罪详解
2013/05/06 PHP
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
DOM XPATH获取img src值的query
2013/09/23 PHP
PHP开发框架kohana3 自定义路由设置示例
2014/07/14 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
firebug的一个有趣现象介绍
2011/11/30 Javascript
谈谈关于JavaScript 中的 MVC 模式
2013/04/11 Javascript
javascript实现json页面分页实例代码
2014/02/20 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
JS查找数组中重复元素的方法详解
2017/06/14 Javascript
Node.js 使用axios读写influxDB的方法示例
2018/10/26 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
javascript for循环性能测试示例
2019/08/07 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
python动态加载变量示例分享
2014/02/17 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
2018/02/18 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
如何在vscode中安装python库的方法步骤
2021/01/06 Python
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
毕业生就业自荐书
2013/12/15 职场文书
五一活动标语
2014/06/30 职场文书
2014年禁毒工作总结
2014/11/24 职场文书
项目备案申请报告
2015/05/15 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
安全生产标语口号
2015/12/26 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript