У меня есть файлы, одна полна последовательностей ключевых слов (~ 20 тыс. Строк), другая полна регулярных выражений (~ 2,5 тыс.).
Я хочу проверить каждое ключевое слово с каждым регулярным выражением и распечататьтот, который соответствует.Я проверил свои файлы, и это составляет около 22 750 000 тестов.Я использую следующий код:
$count = 0;
$countM = 0;
foreach ($arrayRegexp as $r) {
foreach ($arrayKeywords as $k) {
$count++;
if (preg_match($r, $k, $match) {
$countM++;
echo $k.' matched with keywords '.$match[1].'<br/>';
}
}
}
echo "$count tests with $countM matches.";
К сожалению, после некоторого времени вычислений отображаются только части фактических совпадений, а последняя строка с подсчетами никогда не отображается.Что еще более странно, так это то, что если я прокомментирую раздел preg, чтобы сохранить только два foreach и отображение количества, все будет работать нормально.
Я считаю, что это связано с чрезмерным количеством обрабатываемых данных, но яхотел бы знать, есть ли рекомендации, которые я не выполнял для такого рода операций.Регулярные выражения, которые я использую, очень сложны, и я не могу перейти на что-то другое.
Идеи кому-нибудь?