在PHP中查找文件类型

时间:2012-05-24 06:43:07

标签: php

有没有办法在php 中找到确切的文件类型而不查找点(。)之后的字母?因为在这种情况下,即使您将exe文件重命名为png,它也将被视为仅作为恶意的png。而像pathinfo()这样的PHP函数也只返回dot之后的值,这是不可靠的。对此有任何建议或想法将不胜感激。

4 个答案:

答案 0 :(得分:3)

您要找的不是“扩展程序”,它是文件的类型。这已被标准化为MIME type。有许多方法可以检测文件的MIME类型,全部为previously discussed。迄今为止的首选方法是finfo

答案 1 :(得分:0)

你想要的不是文件扩展名,而是mime-type。文件扩展名只不过是一个命名约定,正如您所指出的,它很容易被欺骗。您可以使用finfo_file功能获取此信息。

答案 2 :(得分:0)

上次检查时,您可以使用php函数获取图像的确切文件类型。不确定任意文件。

可以100%准确地检测任何文件的文件类型。永远。您可以制作任意文件,并且该文件将无法作为检测到的类型打开。

通过检查文件签名(前几个字节),可以高精度地检测二进制文件的文件类型。如上所述,结果不是100%保证。但是,您必须有一个文件类型签名库才能查找。

检测文本文件的文件类型是可能的,但很难。你能区分不同的语言吗?如果代码可以用多种语言编译怎么办?

答案 3 :(得分:-2)

可靠。扩展名正好是最后一个点后面的字母。如果将file.exe重命名为file.png,则其新扩展名为.png,将不再可执行(在Windows中,在POSIX系统中,可执行性不是通过文件扩展名控制器)。