我正在为我们庞大的PHP代码库创建一个搜索引擎。
给定文件路径,如何确定某个文件是文本文件还是某种其他类型?我宁愿不必诉诸文件扩展名(如substr($filename, -3)
或愚蠢的东西),因为这是一个基于Linux的文件系统,所以任何事情都与文件扩展有关。
我正在使用RecursiveDirectoryIterator,所以我也可以使用这些方法..
答案 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