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 相关文章推荐
桌面中心(三)修改数据库
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
html中select语句读取mysql表中内容
Oct 09 PHP
基于pear auth实现登录验证
Feb 26 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
php中的ini配置原理详解
Oct 14 PHP
PHP判断网络文件是否存在的方法
Mar 12 PHP
thinkphp实现附件上传功能
May 26 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
Thinkphp5 如何隐藏入口文件index.php(URL重写)
Oct 16 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文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
PHP对象链式操作实现原理分析
2016/10/09 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
laravel使用数据库测试注意事项
2020/04/10 PHP
javascript之Partial Application学习
2013/01/10 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
JS求平均值的小例子
2013/11/29 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
javascript中slice(),splice(),split(),substring(),substr()使用方法
2015/03/13 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
微信小程序中遇到的iOS兼容性问题小结
2018/11/14 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
微信小程序实现多行文字超出部分省略号显示功能
2019/10/23 Javascript
p5.js临摹旋转爱心
2019/10/23 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
精确查找PHP WEBSHELL木马的方法(1)
2011/04/12 Python
python正则表达式中的括号匹配问题
2014/12/14 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
PyQt 线程类 QThread使用详解
2017/07/16 Python
Python实现的随机森林算法与简单总结
2018/01/30 Python
对Python正则匹配IP、Url、Mail的方法详解
2018/12/25 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
Snapfish英国:在线照片打印和个性化照片礼品
2017/01/13 全球购物
快时尚眼镜品牌,全国连锁眼镜店:LOHO眼镜生活
2018/10/08 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
this关键字的作用
2016/01/30 面试题
《回乡偶书》教学反思
2014/04/12 职场文书
春节联欢会策划方案
2014/05/16 职场文书
质量月口号
2014/06/20 职场文书
迎新生标语大全
2014/10/06 职场文书