Ошибка при обслуживании файла WOFF в PHP — file_get_contents по сравнению с readfile

Я пытаюсь использовать файл шрифта WOFF в PHP.

Сначала я установил заголовок Content-Type:

header("Content-Type: application/font-woff");

Затем я пробую следующее:

Это работает нормально (файл правильно передается пользователю, а заголовок Content-Length соответствует размеру файла):

readfile("path/to/font.woff");

Но это не так (скрипт завершается без ошибок, но я получаю в браузере ошибку "octet stream", а заголовок Content-Length равен 0):

echo file_get_contents("path/to/font.woff");

Почему я получаю сообщение об ошибке при использовании file_get_contents? Я использую Windows 10, IIS Express 10 и PHP 7.2.


person user3163495    schedule 26.06.2018    source источник


Ответы (1)


Вы должны проверить журналы вашего сервера и ваш log_level. file_get_contents возвращает false, если при чтении файла произошла ошибка. Я проверил это прямо сейчас, и echo(false) возвращает пустую строку. В этом случае тело ответа будет пустым (и длина содержимого будет равна 0).

Причиной сбоя file_get_content может быть либо неверный путь, либо содержимое файла не может быть интерпретировано как строка. File_get_contents пытается создать строку из файла. Возможно, это не работает с файлом woff. Но я не уверен в этом. Вы должны проверить журналы (уровень журнала E_WARNING).

person mscho    schedule 26.06.2018