file_get_contents
函數在 PHP 中用于從文件中讀取內容。對于較小的文件,它通常可以很好地工作。然而,當處理大文件時,可能會遇到一些問題,如內存限制、性能下降等。
要處理大文件,可以使用 fopen
和 fread
函數逐塊讀取文件。這樣可以避免一次性將整個文件加載到內存中,從而降低內存消耗并提高性能。以下是一個使用 fopen
和 fread
讀取大文件的示例:
$filename = "largefile.txt";
$chunk_size = 1024 * 1024; // 每次讀取 1MB 的數據
$handle = fopen($filename, "rb");
if ($handle) {
while (!feof($handle)) {
$data = fread($handle, $chunk_size);
// 處理數據,例如將其保存到數據庫或執行其他操作
}
fclose($handle);
} else {
echo "無法打開文件";
}
這個示例中,我們以二進制讀取模式("rb"
)打開大文件,然后使用 fread
函數每次讀取 1MB 的數據。在處理完每個數據塊后,可以將其保存到數據庫或執行其他操作。當文件讀取完畢時,關閉文件句柄。