我正在做一個搜索引擎對我們的巨大的PHP代碼庫。如何判斷文件是否是使用PHP的文本?
給定一個文件路徑,如何確定某個文件是文本文件還是某種其他類型?我寧願不要有訴諸文件擴展名(如substr($filename, -3)
或一些愚蠢的),因爲這是一個基於Linux的文件系統,所以任何竟把文件擴展名的關注。
我使用RecursiveDirectoryIterator,所以我也可以過的那些方法..
我正在做一個搜索引擎對我們的巨大的PHP代碼庫。如何判斷文件是否是使用PHP的文本?
給定一個文件路徑,如何確定某個文件是文本文件還是某種其他類型?我寧願不要有訴諸文件擴展名(如substr($filename, -3)
或一些愚蠢的),因爲這是一個基於Linux的文件系統,所以任何竟把文件擴展名的關注。
我使用RecursiveDirectoryIterator,所以我也可以過的那些方法..
嘗試使用finfo_file()
函數。
這裏的描述它的用途的博客:Smart File Type Detection Using PHP
您可以調用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";
}
是的,但要注意,它不贊成贊成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