background image

 

PHP 实例:php 中如何在有限的内存中读取大文件

当要读取超过 80M 文件的需求,很悲剧的,不管是 file_get_content 还是 file 什么的,都
会将读取的文件一次性加载到内存中
正常情况下,我们可以使用

fseek

来读取,好处就是不会一次性读取,以下代码只适合边

取边处理的情况,不适合一次性读取一次性处理。
可以用以下办法生成测试文件
代码如下:
 

$file_handle

 = 

fopen

("./csdn.txt", "rb+");

for

 (

$index1

 = 1; 

$index1

 <= 2000000; 

$index1

++) {

    

fwrite(

$file_handle

, ''.

$index1

."\r");

}
fclose(

$file_handle

);

 
读取处理代码如下:
代码如下: