php的file_get_content不会销毁读取到内存中的文件内容吗?该如何解决
程序员文章站
2022-05-21 12:57:42
...
php的file_get_content不会销毁读取到内存中的文件内容吗?
前阵子给自己写的小程序:遍历指定文件夹内的文件,并搜索指定内容
我的猜测是file_get_contents()不会在调用结束后销毁读取的文件内容内存。但是为什么呢?我不认为php的开发者比我蠢,但这看起来确实是个愚蠢的设计
------解决方案--------------------
file_get_contents()
等价于
fopren()
fread(filesize())
fclose()
即一次性将文件读入内存,如遇到巨大的文件就会出现内存不足
而你 $content .= fread($fp, 10240);
每次才读 10k 当然就不容易发生问题了
前阵子给自己写的小程序:遍历指定文件夹内的文件,并搜索指定内容
- PHP code
// 这种用法很占用内存,几乎每次都出错 $content = file_get_contents($file); // 成功 $content = ''; $fp = fopen($file, 'r'); $content .= fread($fp, 10240); // 即使没有fclose(),在函数内调用仍然会顺利运行完毕
我的猜测是file_get_contents()不会在调用结束后销毁读取的文件内容内存。但是为什么呢?我不认为php的开发者比我蠢,但这看起来确实是个愚蠢的设计
------解决方案--------------------
file_get_contents()
等价于
fopren()
fread(filesize())
fclose()
即一次性将文件读入内存,如遇到巨大的文件就会出现内存不足
而你 $content .= fread($fp, 10240);
每次才读 10k 当然就不容易发生问题了
相关文章
相关视频
上一篇: docker