这两个方法都是可以完成你的要求的,不过关键就在于内存的优化。使用 fread 可以每次只读出一部分的文件内存,之后立即输出到浏览器响应中,如此循环将所有内容输出,这样内存的消耗就可以得到控制。而 file_get_contents 则是每次都将文件内容一次性读到内存,这样的话一次申请很大块的内存,对于较大的文件(如图像之类的),在请求并发过大的时候,就很容易内存吃紧。
这两个方法都是可以完成你的要求的,不过关键就在于内存的优化。
使用
fread
可以每次只读出一部分的文件内存,之后立即输出到浏览器响应中,如此循环将所有内容输出,这样内存的消耗就可以得到控制。而
file_get_contents
则是每次都将文件内容一次性读到内存,这样的话一次申请很大块的内存,对于较大的文件(如图像之类的),在请求并发过大的时候,就很容易内存吃紧。