Итак суть вопроса:
На данный момент есть около 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;
В общем от вас жду советы как ускорить работу скрипта, либо любые другие альтернативы.