如何判断文件是否是使用PHP的文本?

时间:2010-09-08 17:57:22

标签: php linux text file-type

我正在为我们庞大的PHP代码库创建一个搜索引擎。

给定文件路径,如何确定某个文件是文本文件还是某种其他类型?我宁愿不必诉诸文件扩展名(如substr($filename, -3)或愚蠢的东西),因为这是一个基于Linux的文件系统,所以任何事情都与文件扩展有关。

我正在使用RecursiveDirectoryIterator,所以我也可以使用这些方法..

4 个答案:

答案 0 :(得分:10)

尝试finfo_file()功能。

这是一篇描述其用法的博客:Smart File Type Detection Using PHP

答案 1 :(得分:1)

if (mime_content_type($path) == "text/plain") {
 echo "I'm a text file";
}

答案 2 :(得分:0)

您可以调用file实用程序:

echo `file '$file'`;

返回类似的内容:

$ file test.out
test.out: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

$ file test.cpp
test.cpp: ASCII C program text

$ file test.txt
test.txt: ASCII text

$ file test.php
test.php: PHP script text

答案 3 :(得分:0)

尝试使用: string mime_content_type ( string $filename )

希望这有用。

William Choi