fread() 和 readfile()
fread() 最大一次性能讀取 8k長度的字節數,因此不能一次性讀取大文件去做下載。 優點在於,操做更加靈活,每次讀取指定字節的內容,用於下載時方便控制服務器的流量。
readfile() 優點是可以一次性讀取大文件;不須要PHP預讀到內存,下載速度更快,直接把文件的處理交由服務器。缺點就是不能控制負載。因此它是沒有內存限制的,若是遇到報內存錯誤,先調用 ob_end_flush()之類的函數關閉緩衝區。
file_get_contents 也是沒 readfile()快, 由於也是走了php的內存。可是在讀取小文本內容到字符串變量時,這個函數最適合使用,簡單,更快。
fgets() 是一次讀取文件中的一行了,再須要逐行處理文件的時候,使用這個php