PHP:检查文件是否为压缩数据的最佳方法

时间:2013-08-07 08:07:13

标签: php file zip tar

我正在处理与源代码管理相关的项目,并且我有通过ViewVC查看的文件的链接。我正在尝试确定文件是普通文件还是压缩数据,因此决定是查看还是下载文件。

我正在考虑使用finfo_file函数,并在返回的文件描述中检查“压缩数据”部分。

我的问题是,这真的是检查压缩文件类型的好方法吗?如果没有,有什么更好的方法?我不确定这个函数是否对所有压缩文件说明相同,例如.zip

3 个答案:

答案 0 :(得分:3)

如果您使用的是unix服务器,最好的方法是使用内部函数“file”:

<?
echo system("file -i -b file.zip");
echo system("file -i -b file.tar");
echo system("file -i -b file.gz");
?>

输出如下:

application/x-zip
application/x-tar
application/x-gzip

答案 1 :(得分:0)

如果您知道它或者是ZIP或者没有其他可能性(并且没有其他可能性,您可以尝试将其打开为ZIP文件并查看该功能是否成功。

http://www.php.net/manual/en/ziparchive.open.php

答案 2 :(得分:0)

我将文件扩展名与我正在使用的受支持压缩脚本列表进行比较。如果其中一个脚本匹配,则下载它,否则假设它可以在文本编辑器(或其他查看软件)中查看。