leha2002828
@leha2002828
Программирование php/html

Работа с большими файлами для preg_match_all?

$base = file_get_contents("https://site.ru/base.php"); // base.php используется как txt файл.
$text = "Поиск";
preg_match_all('/\b'.$text.'\:(.*)/i', $base, $otvet);


База превышает более 2 млн строк, после запроса нечего не выводит.
Что сделать? fopen пробовал так же...
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 3
402d
@402d
начинал с бейсика на УКНЦ в 1988
смотрим размер файла. пусть он 8метров
file_get_contents("https://site.ru/base.php"); - выделено 8+
$base = 16м
на предматч тоже идет оверхед.

так что попробуй скриптам дать 4 размера файла. доступной памяти
Ответ написан
@ksnk
file_get_contents читает в память. Нет памяти - нет печенек, смотри в логах ошибок... Попробуй читать в цикле fopen-fread не весь файл, а кусочками по 64к, к примеру. Eдинственная проблема - нужно не потерять возможный "хвост", например перекидывая последние 5 символов от предыдущего чтения в начало следующего.
Ответ написан
Комментировать
@pantsarny
приведите пример строк из файла, и размер файла
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы