Здравствуйте, есть папка в которой около 70 000 html файлов и следующий скрипт: Код (Text): $dir = "/home/fighters"; $files = scandir($dir); $links = array(); foreach ($files as $ind => $file) { if (in_array($file, array(".", ".."))) continue; $c = $this->clear(file_get_contents($dir . "/" . $file)); preg_match_all('|href="/events/(.*)"|isU', $c, $events); if (isset($events[1])) { $links = array_merge($links, $events[1]); } echo $ind . "\n"; } $links = array_unique($links); foreach($links as $ind => $link) { $links[$ind] = "http://www.site.com/events/{$link}"; } $links = implode("\n", $links); $file = "./data/links/events.txt"; file_put_contents($file ,$links); chmod($file, 0777); Где то на 20 000 - ом файле появляется ошибка: PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 524288 bytes). В php.ini - memory_limit 1280000M Почему то скрипт с дальнейшими итерациями ест все больше и больше памяти.
А зачем все скопом? пиши в файл результат обработки после каждого прохода. Потом разок его отсортируешь, если надо будет. вобще, учи БД
да можно попробовать добавлять в файл на каждой итерации, причем тут БД? мне нужно из большого кол-ва файлов пропарсить ссылки, которые потом wget буду отдавать