Вопрос, возможно, не так ясен, как мог бы быть, но я изо всех сил пытался придумать лучший способ легко описать его.
Я внедряю фильтр плохого слова в некоторые статьи, которые мы выбираем из XML-канала. На данный момент у меня есть плохие слова в массиве, и я просто проверяю текст следующим образом:
str_replace($badwords, '', $text, $count);
if ($count > 0) // We have bad words...
Но это МЕДЛЕННО! Так медленно! И когда я пытаюсь обрабатывать более 30 000 статей одновременно, я начинаю задумываться, есть ли лучший способ добиться этого. Если бы только strpos поддерживал массивы! Даже тогда я не думаю, что это будет быстрее ...
Буду рад любым предложениям. Заранее спасибо!
EDIT:
Теперь я проверил несколько методов между вызовами microtime (), чтобы рассчитать их время.
str_replace () = 990 секунд
preg_match () = 1029 секунд (помните, мне нужно только идентифицировать их, а не заменить их)
без фильтрации плохих слов = 1057 секунд (предположительно, потому что для обработки еще тысячи или около того статей с плохими формулировками.
Спасибо за все ответы, я просто по-прежнему с str_replace. :)