Я создаю поисковую систему для нашей гигантской PHP-базы.
Учитывая путь к файлу, как я могу с определенной степенью уверенности определить, является ли файл текстовым файлом или каким-то другим типом? Я бы предпочел не прибегать к расширению файлов (например, substr($filename, -3)
или что-то глупое), поскольку это файловая система на основе Linux, поэтому все зависит от расширений файлов.
Я использую RecursiveDirectoryIterator, поэтому у меня есть эти методы.
Попробуйте finfo_file()
.
Вот блог, описывающий его использование: обнаружение типа интеллектуального файла с использованием PHP
if (mime_content_type($path) == "text/plain") { echo "I'm a text file"; }
Попробуйте использовать: string mime_content_type ( string $filename )
Надеюсь, это полезно.
Уильям Чой
Вы можете вызвать утилиту для 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