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 相关文章推荐
dedecms模版制作使用方法
Apr 03 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
Thinkphp模板中截取字符串函数简介
Jun 17 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
php实现将Session写入数据库
Jul 26 PHP
微信随机生成红包金额算法php版
Jul 21 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
完美解决在ThinkPHP控制器中命名空间的问题
May 05 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
PHP实现搜索时记住状态的方法示例
May 11 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
《猛禽小队》:DC宇宙的又一超级大烂片
2020/04/09 欧美动漫
PHP中SSO Cookie登录分析和实现
2015/11/06 PHP
php可变长参数处理函数详解
2017/02/22 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
解决php 处理 form 表单提交多个 name 属性值相同的 input 标签问题
2017/05/11 PHP
php输出形式实例整理
2020/05/05 PHP
JavaScript触发器详解
2007/03/10 Javascript
如何确保JavaScript的执行顺序 之jQuery.html并非万能钥匙
2011/03/03 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
2015/12/03 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
jQuery如何跳转到另一个网页 就这么简单
2016/12/28 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
微信小程序wx.request实现后台数据交互功能分析
2017/11/25 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue+vant实现购物车全选和反选功能
2020/11/17 Vue.js
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python爬虫框架Scrapy安装使用步骤
2014/04/01 Python
Python基于pygame模块播放MP3的方法示例
2017/09/30 Python
python实现画出e指数函数的图像
2019/11/21 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python画图时设置分辨率和画布大小的实现(plt.figure())
2021/01/08 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
输入N,打印N*N矩阵
2012/02/20 面试题
大一新生军训时的自我评价分享
2013/12/05 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
法警的竞聘演讲稿
2014/01/02 职场文书
无传销社区工作方案
2014/05/13 职场文书
医药销售自我评价200字
2014/09/11 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
交通处罚决定书
2015/06/24 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
志愿服务心得体会
2016/01/15 职场文书