在PHP中错误提供WOFF文件-file_get_contents与readfile

时间:2018-06-26 17:32:32

标签: php server mime-types woff http-content-length

我正在尝试使用PHP提供WOFF字体文件。

首先,我设置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 :(得分:0)

您应该检查服务器日志和log_level。如果读取文件出错,则file_get_contents返回false。我已经对其进行了测试,echo(false)返回了一个空字符串。在这种情况下,响应主体将为空(内容长度为0)。

file_get_content失败的原因可能是路径错误,或者文件内容不能解释为字符串。 File_get_contents尝试从文件中创建一个字符串。可能是,这不适用于woff文件。但是,我对此并不保证。您应该检查日志(E_WARNING日志级别)。