Intereting Posts
Получить внешние координаты пути SVG (getBBox)? как изменить размер изображения с URL-адреса и уменьшить размер изображения Могу ли я использовать gmail как smtp-сервер для своего веб-сайта Laravel, Datatables, столбец с числом отношений PHP: Когда временные загруженные файлы удаляются? PHP foreach array получает первые 9 результатов, затем второй 9 Преобразование объекта в JSON и JSON в Object в PHP (библиотека, подобная Gson для Java) Symofny2 Получите список доступных логических имен контроллеров Проблема с Facebook access_token swagger-php имеет разные документы из одного и того же кода Функция множественного обновления PHP не обновляется и получает первую строку пустым Получить переменную от PHP до JavaScript Локальная страница не работает. Localhost перенаправляет вас слишком много раз. Laravel 5.3 Предупреждение: PDOStatement :: execute (): SQLSTATE : недопустимый номер параметра: параметр не определен в … filetext Переключить сообщения в WordPress с помощью jquery

Определение типа файла с помощью PHP. Что такое Magic Database?

Я пытаюсь определить, являются ли некоторые файлы на самом деле изображениями (используя PHP). Мне посоветовали использовать finfo, и я пытаюсь понять, как это работает.

То, чего я не понимаю, – что такое база данных магических чисел и как она работает? Я немного озадачен – у каждого файла есть определенное «волшебное число», которое вы сравниваете с этой базой данных?

Кроме того, у меня есть это на моем debian squeeze – но будет ли он также доступен на платформе WIN? или вам придется прикрепить эту базу данных вместе с приложением?

<?php $finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic.mgc"); if (!$finfo) { echo "Opening fileinfo database failed"; exit(); } /* get mime-type for a specific file */ $filename = "/usr/local/something.txt"; echo $finfo->file($filename); ?> 

Related of "Определение типа файла с помощью PHP. Что такое Magic Database?"

В большинстве форматов файлов есть заголовок, который помогает определить, какой файл он есть. Например, файлы GIF всегда начинаются с GIF87

База данных магических чисел представляет собой список всех заголовков и позволяет finfo() идентифицировать файлы.

У Windows эта база данных не установлена ​​по умолчанию. Вам нужно будет принести его для окон. Фактически вы должны использовать одну и ту же базу данных независимо от того, где вы развертываете, чтобы улучшить совместимость с кросс-платформой. Представьте, что вы развернулись к старой системе, которая не знает о типах файлов, которые понимает ваша платформа разработчиков.

Будет ли альтернативное решение состоять в том, чтобы увидеть, возвращает ли exif_imagetype false ?

На моем Ubuntu он находится в /usr/share/file/magic.mime . Я не знаю о Windows. И да, обычно для разных форматов файлов есть специальный префикс (даже если нет расширения, вы можете распознать GIF, например, из-за того, что он всегда начинается со строки «GIF»).