Если кому понадобится, то вот как можно ускорить цензор раз эдак в 10...
Открываем файл lib.php
находим функцию bads_filter() и заменяем кусок кода:
CODE:function bads_filter($check,$replc = 1) {
global $exbb;
$filetoopen = $exbb['home_path'].'data/badwords.php';
$badwords = @file($filetoopen);
unset($badwords[0]);
if (count($badwords)) {
$bad = array();
$good = array();
foreach ($badwords as $words) {
list($bw, $gw) = explode('=',$words);
$bad[] = '/(^|\b)' . trim($bw) . '(\b|!|\?|\.|,|$)/i';
$good[] = trim($gw);
}
if (sizeof($bad)) $ok = preg_replace($bad,$good,$check);
} else {
$ok = $check;
}
if( $replc ) { return $ok; }
if ($check != $ok) return true; //есть плохие слова
}
на
CODE:function bads_filter($string)
{
global $exbb;
$file=file($exbb['home_path'].'data/badwords.php');
$regexp=null;
$bad='<font color=red><b><ВЦ></b></font>';
foreach($file as $word){
$word=trim($word);
$regexp.='|'.$word;
}
$regexp='/(\b)('.substr($regexp,1).')(\b)/i';
$string=preg_replace($regexp,$bad,$string);
return $string;
}
все. теперь генерация страница не 1.23, а 0.123
У кого есть проблемы с русскими словами, это решается установкой локали.\n\n(Добавление)
да, переменная $bad содержит то, на что будет заменятся весь мат. |