@sexy_man_1

Скорость работы скрипта при поиске регулярного выражения в цикле. Как увеличить скорость работы или альтернатива?

Итак суть вопроса:
На данный момент есть около 2000 шаблонов подготовленные под регулярные выражения
Например, один из этих шаблонов выглядит так:
Здравствуйте Ваш заказ (\s*\b[\S]+\b\s*){1,} отправлен почтой Тел 88001234567
И допустим есть случайный текст.
Суть задачи - мне необходимо найти к какому шаблону относится случайный текст.
Вроде бы задача простая, но всё упирается во время работы скрипта. может доходить до 1 сек. это недопустимо много для меня, необходимо увеличить скорость, не больше 0.01 сек.
Пример скрипта:
<?php
$start = microtime(true);
$text = "Здравствуйте Ваш заказ Телевизор Samsung отправлен почтой Тел 88001234567";
// $templates - массив с шаблонами
$id = 0;
foreach($templates as $key=>$val){
  if(preg_match('/^'.val.'$/u',$text)){
    $id = key;
    break;
  }
}
$stop = microtime(true);
echo 'Время работы: '.($stop - $start).'. ID шаблона- '.$id;

В общем от вас жду советы как ускорить работу скрипта, либо любые другие альтернативы.
  • Вопрос задан
  • 294 просмотра
Пригласить эксперта
Ответы на вопрос 1
@shagguboy
не больше 0.01 сек

у гугла/яндекса больше. это фантастика.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы