Вот такой простой код:Код | <?php
set_time_limit(120); // на всякий случай
function test_change($filename) { $handle = fopen($filename, "r+"); clearstatcache(); $filesize = filesize($filename); if ($filesize) $data = fread($handle, $filesize); else $data = 0; ftruncate($handle, 0); fwrite($handle, $data); fclose($handle); }
$filename = 'file.txt'; $i = 0;
file_put_contents($filename, $i); while ($i++ < 10000 ) { test_change($filename); }
echo "Done\n";
?> |
вызывает у меня ошибку Код | Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 134217729 bytes) in blablabla.php on line 10 |
При этом самое интересное то, что если убрать из кода вызов clearstatcache(), или использовать константу вместо $filesize в fread() или константу вместо $data в fwrite() - ошибка исчезает. Может я что-то делаю неправильно?
П.С. Windows XP SP2, PHP 5.2.4 |