0
我有一个PHP循环,我读取和处理几个文件的内容。PHP fclose没有释放内存
<?php
foreach($files as $file)
{
$f = fopen($file, 'r');
$content = fread($f, filesize($file));
import($content);
fclose($f);
}
?>
但是,在多个循环迭代,我仍然在FREAD()线得到一个内存耗尽的错误 - 我的理解是,使用FCLOSE()将释放资源的内存,但这不是这种情况?
我已经阅读了关于此事的其他一些问题,并且他们都使用fclose()引用,我已经这样做了。我也抛出memory_get_usage()/ memory_get_peak_usage(),他们只是继续向上,直到它的错误。
我误解了fclose()如何处理释放内存?
'import($ content)'做了什么?也许这就是吃掉记忆。 – Oswald 2015-01-04 13:22:05
是的,'import()'不是内置的。该函数是否读取这些文件中的所有内容,然后在完成时不释放它? 'fclose()',因为你有它,将正常工作。 – 2015-01-04 13:27:01
嗯,import()只是将数据插入到数据库中,但如果我不调用import(),它会到达foreach循环的末尾。但我不明白的是,内容是在foreach中用fread()读取的,并将它传递给import(),那么我将在哪里释放内存? – MattRogowski 2015-01-04 13:35:49