Перейти к контенту

Небольшое улучшение badword filter


d1pro

Рекомендуемые сообщения

Не знаю, может уже было, но все равно решил поделиться. Если что, потрите тему).

В общем небольшое улучшение, добавляющее антимату иммунитет к транслиту и т.п.

Открываем class_bbcode_core.php

Найти

*/
class class_bbcode_core
{
/**
* IPS Class Object
*
* @var object
*/
var $ipsclass;

Вставить ниже

	var $badword_replace = array( 
'а' => array( 'а', 'a' ), 
'б' => array( 'б', '6', 'b' ), 
'в' => array( 'в', 'b', '8', 'v' ), 
'г' => array( 'г', 'r', 'g' ), 
'д' => array( 'д', 'd', ), 
'е' => array( 'е', 'e' ), 
'ё' => array( 'ё', 'е', 'e' ), 
'ж' => array( 'ж', '\>i\<', 'zh' ), 
'з' => array( 'з', '3', 'z' ), 
'и' => array( 'и', 'u', 'i' ), 
'й' => array( 'й', 'u', 'y' ), 
'к' => array( 'к', 'k' ), 
'л' => array( 'л', 'l', 'ji' ), 
'м' => array( 'м', 'm' ), 
'н' => array( 'н', 'h', 'n' ), 
'о' => array( 'о', 'o', '0' ), 
'п' => array( 'п', 'n', 'p' ), 
'р' => array( 'р', 'r', 'p' ), 
'с' => array( 'с', 'c', 's' ), 
'т' => array( 'т', 'm', 't' ), 
'у' => array( 'у', 'y', 'u' ), 
'ф' => array( 'ф', 'f' ), 
'х' => array( 'х', 'x', 'h' ), 
'ц' => array( 'ц', 'c' ), 
'ч' => array( 'ч', 'ch' ), 
'ш' => array( 'ш', 'sh' ), 
'щ' => array( 'щ', 'sch' ), 
'ь' => array( 'ь', 'b' ), 
'ы' => array(), 
'ъ' => array(), 
'э' => array( 'э', 'е', 'e' ), 
'ю' => array(), 
'я' => array( 'я', '9i' ), );

 

Найти

					if ($r['swop'] == "")
				{
					$replace = '######';
				}
				else
				{
					$replace = $r['swop'];
				}

				$r['type'] = preg_quote($r['type'], "/");

Добавить ниже

					$new_type = "";

				for( $i = 0; $i < strlen( $r['type'] ); $i++ )
				{
					   if ( count( $this->badword_replace[ $r['type'][ $i ] ] ) )
					   {
						   $new_type .= '('.implode( '|', $this->badword_replace[ $r['type'][ $i ] ] ).')';
					   } 
					   else
					   {
						   $new_type .= $r['type'][$i];
					   } 
				}

				$r['type'] = $new_type ? $new_type : $r['type'];

 

Решение на самом деле примитив. Если что получше придумаете - пишите...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.