如何判断文件是否是使用PHP的文本?
问题描述:
我正在做一个搜索引擎对我们的巨大的PHP代码库。如何判断文件是否是使用PHP的文本?
给定一个文件路径,如何确定某个文件是文本文件还是某种其他类型?我宁愿不要有诉诸文件扩展名(如substr($filename, -3)
或一些愚蠢的),因为这是一个基于Linux的文件系统,所以任何竟把文件扩展名的关注。
我使用RecursiveDirectoryIterator,所以我也可以过的那些方法..
答
您可以调用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
答
if (mime_content_type($path) == "text/plain") {
echo "I'm a text file";
}
+2
是的,但要注意,它不赞成赞成PHP5.3的'finfo_file' – Gordon 2010-09-08 18:03:24
答
尝试使用: string mime_content_type (string $filename )
希望这是有帮助的。
William Choi
甜的..慢了很多,比我希望它会是,但我想它会必须做的。谢谢! – 2010-09-08 18:14:12