At 21:22 24.02.2003, {R}ichard Ashton spoke out and said:
--------------------[snip]--------------------
>while ( $flag == true )
>if (strpos($body, $word[]) > 0) {$flag=false}
>
>What I really need to know is which is the fastest loop?
>Which is the fastest match, strpos?
>Which is the fastest comparison?
>What other optimisations are possible to maximise search speed?
>
>I would expect to keep a frequency hit count and sort the $words[] so
>that the most frequent hits are found first, remembering that only
>$body with NO $words in then are automatically posted, so every word
>must be tested.
>
>I don't know sufficient internals to pick the fastest method. I will be
>running with 4.3.1 on FreeBSD 4.6
--------------------[snip]-------------------- 

I'd suggest something like this:

$buzzwords = array('idiot', 'fool', 'shit', 'FOAD');

$re = '/(' . implode('|',$buzzwords).')/is';
if (preg_match($re, $posting))
    // bad word found
else
    // cleared

You only need to make sure that your buzzwords dont contain a '/' - you
could change the regex delimiter then, or simply escape it in the array.


-- 
   >O Ernest E. Vogelsinger 
   (\) ICQ #13394035 
    ^ http://www.vogelsinger.at/


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to