У меня есть цикл PHP, посредством которого я читаю и обрабатываю содержимое нескольких файлов.
<?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 () обрабатывает освобождение памяти?
<?php
foreach($files as $file)
{
$f = fopen($file, 'r');
$content = fread($f, filesize($file));
import($content);
fclose($f); // this close file
unset($content); // this free memory allocated to content of file
}
?>
Других решений пока нет …