在 PHP 中,使用 fread() 函数读取大文件时,需要注意内存限制。为了避免内存溢出,可以分批次读取文件内容。下面是一个示例代码,展示如何使用 fread() 函数分批次读取大文件:
<?php// 设置每次读取的字节数$bufferSize = 8192; // 可根据需要调整// 打开文件$file = fopen('large_file.txt', 'r');if (!$file) { die('Error opening file');}// 循环读取文件内容while (!feof($file)) { // 读取文件的一部分 $data = fread($file, $bufferSize); // 处理读取到的数据(这里只是简单地输出) echo $data;}// 关闭文件fclose($file);?>在这个示例中,我们首先设置了每次读取的字节数($bufferSize),然后使用 fopen() 函数以只读模式打开文件。接下来,我们使用 while 循环和 feof() 函数检查文件是否已经读取完毕。在循环中,我们使用 fread() 函数读取文件的一部分,并将其存储在 $data 变量中。然后,我们处理这部分数据(在这个示例中,我们只是将其输出)。最后,我们使用 fclose() 函数关闭文件。
通过这种方法,我们可以避免一次性加载整个文件到内存中,从而降低内存消耗。


