Intereting Posts
Сохранение массива массивов в базу данных Изменить файл конфигурации PHP из формы HTML Получить частичную веб-страницу Кодируйте URL, включая дефис (-) и точку (.) В php Почему «истекает» 1981 год? Laravel 4 ajax с частичными видами TokenMismatchException в строке VerifyCsrfToken.php 67 при загрузке видео Как получить контент метаописания с помощью Goutte При использовании уникальной буквенно-цифровой строки для короткого URL-адреса лучше ли хранить созданную строку в базе данных или кодировать / декодировать «на лету»? Еще один вопрос с регулярным выражением PHP Скриншоты веб-страницы с PHP? Как выполнить правильную сдвиг без изменений в PHP? Как должен выглядеть HTTP Post для сохранения модели и связанных с ней данных модели? Почему я не могу получить доступ к переменным сеанса из моего сценария под названием AJAX? HTTP-заголовок для загрузки файлов Microsoft Word и Excel

Как определить, является ли файл текстовым с помощью PHP?

Я создаю поисковую систему для нашей гигантской PHP-базы.

Учитывая путь к файлу, как я могу с определенной степенью уверенности определить, является ли файл текстовым файлом или каким-то другим типом? Я бы предпочел не прибегать к расширению файлов (например, substr($filename, -3) или что-то глупое), поскольку это файловая система на основе Linux, поэтому все зависит от расширений файлов.

Я использую RecursiveDirectoryIterator, поэтому у меня есть эти методы.

Solutions Collecting From Web of "Как определить, является ли файл текстовым с помощью PHP?"

Попробуйте 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