Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 3280

Статус
В этой теме нельзя размещать новые ответы.
Насчёт говёного кода.. Как вы реализуете вот такую задачку?
Есть файл - размер 2 гигабайта. В нём на каждой строчке написан домен. Нужно проверить каждый на соответствие рег выражению(неважно какому). Если подходит под рег выражение - оставляем домен - не подходит - сносим из файла.
Очень интересно ваше решение.
Спасибо.
PHP:
$fp = fopen('domains-2GB.txt','r');
$fo = fopen('domains-good.txt','w');
while(!feof($fp)) {
  $domain = trim(fgets($fp));
  if (preg_match('/шаблон/i', $domain)) fwrite($fo,"$domain\n");
}
По желанию потом fclose() оба файла и rename() новый файл обратно в старый.

Памяти сожрется по размеру самой длинной строки в исходном файле.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху