为什么readfile()会耗尽PHP内存?
我看到过很多关于如何有效地使用PHP下载文件而不是允许直接HTTP请求(以确保文件安全,跟踪下载等)的问题。
答案几乎总是PHP readfile()。
但是,尽管它在对大型文件进行测试期间效果很好,但是当它在具有数百个用户的实时站点上时,下载开始挂起并且PHP内存限制耗尽。
那么,当流量很高时,导致内存爆炸如此糟糕的工作是什么?我认为它应该通过直接写入输出缓冲区来绕过PHP内存的大量使用?readfile()
编辑:(为了澄清,我正在寻找一个“为什么”,而不是“我能做什么”。我认为Apache mod_xsendfile是规避的最佳方式)