Функция wp_check_filetype()
в WordPress используется для получения расширения и MIME типа файла на основе его имени или пути. Она играет важную роль в проверке того, допустим ли указанный файл для загрузки на сайт.
wp_check_filetype( string $filename, string[]|null $mimes = null ): array
Функция принимает два параметра:
$filename
(строка, обязательно) — имя файла или его путь.$mimes
(массив или null, опционально) — массив разрешенных MIME типов файлов, где ключом выступает расширение файла, а значением — MIME тип. Если не указано, по умолчанию используется результат функцииget_allowed_mime_types()
.
Функция возвращает массив с двумя значениями:
ext
— расширение файла (например,'jpg'
), илиfalse
, если тип файла не совпадает ни с одним из разрешенных.type
— MIME тип файла (например,'image/jpeg'
), илиfalse
, если тип файла не соответствует разрешенным.
Пример 1: Получение расширения и MIME типа файла
Самый базовый пример использования функции для получения расширения и MIME типа по имени файла:
$filetype = wp_check_filetype('example-image.jpg');
echo $filetype['ext']; // вывод: jpg
echo $filetype['type']; // вывод: image/jpeg
В данном примере функция извлекает расширение и MIME тип файла на основе его имени example-image.jpg
.
Пример 2: Проверка файла на разрешенность
Можно использовать wp_check_filetype()
для проверки, разрешен ли определенный файл к загрузке на сайт:
$filetype = wp_check_filetype('sample-image.png');
if ($filetype['ext']) {
echo 'Файл с расширением ' . $filetype['ext'] . ' разрешен для загрузки.';
} else {
echo 'Файл с расширением ' . $filetype['ext'] . ' запрещен для загрузки.';
}
Если тип файла не разрешен, то функция вернет false
, и соответствующее сообщение будет выведено.
Пример 3: Указание конкретных MIME типов для проверки
Если вам нужно указать свой список допустимых MIME типов, это можно сделать, передав массив в качестве второго параметра:
$mimes = array(
'gif' => 'image/gif',
'png' => 'image/png',
'jpg|jpeg|jpe' => 'image/jpeg'
);
$file = 'sample-document.pdf';
$filetype = wp_check_filetype($file, $mimes);
if ($filetype['ext']) {
echo 'Файл с расширением ' . $filetype['ext'] . ' разрешен.';
} else {
echo 'Файл с расширением ' . $filetype['ext'] . ' запрещен.';
}
В данном примере мы явно указали, что разрешены только файлы с расширениями gif
, png
и jpg/jpeg
. Поскольку sample-document.pdf
не соответствует этим расширениям, результатом будет сообщение о запрете загрузки файла.
Возвращаемое значение
Функция возвращает массив с двумя элементами:
ext
— строка с расширением файла илиfalse
, если расширение не соответствует ни одному из разрешенных.type
— строка с MIME типом файла илиfalse
, если тип файла не соответствует разрешенным.
Пример возвращаемого массива:
array(
'ext' => 'jpg',
'type' => 'image/jpeg',
)
Если тип файла не разрешен, оба значения в массиве будут false
:
array(
'ext' => false,
'type' => false,
)
Использование в других функциях
wp_check_filetype()
часто используется в сочетании с функциями:
wp_check_filetype_and_ext()
— для проверки и файла, и его расширения.wp_upload_bits()
— для обработки загрузки файлов.
Заключение
Функция wp_check_filetype()
— это мощный инструмент для проверки файлов, используемых в WordPress. Она позволяет гибко управлять разрешенными типами файлов на вашем сайте и обеспечивает безопасность загрузки, исключая возможность загрузки файлов неподдерживаемых форматов.