Ошибка обслуживания файла WOFF в PHP - file_get_contents и readfile - PullRequest
0 голосов
/ 26 июня 2018

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

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

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

Тогда я попробую следующее:

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

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

Но это не так (сценарий завершается без ошибок, но в браузере появляется ошибка «поток октетов», а заголовок Content-Length равен 0):

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

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

1 Ответ

0 голосов
/ 26 июня 2018

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

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

...