5 простых способов проверить, является ли файл видео в PHP

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

Метод 1: сравнение расширений файлов
Самый простой подход – сравнение расширения файла со списком известных расширений видео. Вот пример:

$file = 'video.mp4';
$videoExtensions = ['mp4', 'avi', 'mov', 'mkv'];
$extension = strtolower(pathinfo($file, PATHINFO_EXTENSION));
if (in_array($extension, $videoExtensions)) {
    echo "The file is a video.";
} else {
    echo "The file is not a video.";
}

Метод 2: определение типа MIME
Другой способ проверить, является ли файл видео, — проверить его тип MIME. Вот пример:

$file = 'video.mp4';
$mime = mime_content_type($file);
if (strpos($mime, 'video/') === 0) {
    echo "The file is a video.";
} else {
    echo "The file is not a video.";
}

Метод 3: анализ заголовков файлов
Видео часто имеют определенные заголовки файлов, которые можно использовать для идентификации. Вот пример проверки заголовка файла:

$file = 'video.mp4';
$videoHeaders = ['00000018667479706d70', '52494646'];
$handle = fopen($file, 'rb');
$header = bin2hex(fread($handle, 8));
fclose($handle);
if (in_array($header, $videoHeaders)) {
    echo "The file is a video.";
} else {
    echo "The file is not a video.";
}

Метод 4: расширение FFmpeg
Используя расширение FFmpeg в PHP, вы можете выполнить расширенный анализ видеофайлов. Вот пример:

$file = 'video.mp4';
$ffmpeg = \FFMpeg\FFMpeg::create();
$video = $ffmpeg->open($file);
if ($video instanceof \FFMpeg\Media\Video) {
    echo "The file is a video.";
} else {
    echo "The file is not a video.";
}

Метод 5: Библиотека GetID3
Библиотека GetID3 — мощный инструмент для извлечения информации из мультимедийных файлов. Вот пример использования GetID3 для проверки того, является ли файл видео:

require_once 'getid3/getid3.php';
$file = 'video.mp4';
$getID3 = new getID3();
$fileInfo = $getID3->analyze($file);
if (isset($fileInfo['video'])) {
    echo "The file is a video.";
} else {
    echo "The file is not a video.";
}

В этой статье мы рассмотрели пять различных методов проверки того, является ли файл видео в PHP. Используя сравнение расширений файлов, определение типов MIME, анализ заголовков файлов, расширение FFmpeg или библиотеку GetID3, вы можете легко определить, является ли файл видео или нет в ваших приложениях PHP. Выберите метод, который лучше всего соответствует вашим потребностям, и интегрируйте его в свой код для эффективной проверки и обработки файлов.