Как оптимизировать данный код?

Space

Новичок
Как оптимизировать данный код?

в mysql содержутся некие сочетания(ключи) букв и слов, которые не допустимы в тексте. таких ключей больше 1000.

при парсинге какой-либо страницы идет обработка текста, на наличие этих ключей - и если ключ в тексте находится - то запись отсекается.

проблема в том, что при большом количестве ключей скрипт:
1. начинает долго думать
2. может появиться ошибка в стиле(время исполнения скриптов превышет 30 секунд)

PHP:
$bt_q    = "select name from _black_text";
$bt_m=mysql_query($bt_q);
while($bt_a=mysql_fetch_row($bt_m))
 {
 $black_text.="if(ereg(\"".$bt_a[0]."\",\$TITLE.\$DESCRIPTION)){\$ERR=1;}\ ";
 }
......................

      eval($black_text);
      if($ERR==1){continue;}
как можно оптимизировать код на нахождение в тексте ключей?
 

GD

Guest
$bt_q = "select name from _black_text";
$bt_m=mysql_query($bt_q);
$str = $TITLE.$DESCRIPTION;
while($bt_a=mysql_fetch_row($bt_m))
{
if(strpos($str,$bt_a[0])!==false){$ERR=1;break;}
}
......................

if($ERR==1){continue;}
 

HEm

Сетевой бобер
ну еще бы
1. использование медленной регулярной функции вместо быстрой строковой
2. неоправданное использование eval()
 

Space

Новичок
HEm, а почему неоправданое?
у меня данный вайл грузится в начале кода - а eval вызывается очень часто в другом массиве через foreach.

так я делаю один селект - а если я while запихну в foreach то селектов будет не меньше 100 :)))
 
Сверху