Подскажите какойнибудь скрипт или основу скрипта, чтобы можно было вмантировать в коментарии, для замены мата на другие слова.
например: написано "млять" а при дабавлении отображается "я дурак"
Все, что было предложено, будет медленно работать. В PHP есть встроенная функция, для таких фокусов. Если интересно - читай теорию, если нет, - листай в конец, там расписан твой случай.
ereg_replace()
(PHP 3, PHP 4)
ereg_replace - замещает регулярное выражение.
Описание
Код:
string ereg_replace (string pattern, string replacement, string string)
Примечание: preg_replace(), которая использует Perl-совместимый синтаксис регулярного выражения, часто работает быстрее, чем ereg_replace().
Эта функция сканирует string для поиска совпадений с pattern, затем заменяет совпавший текст строкой replacement.
Возвращается модифицированная строка. (Что может означать, что строка-оригинал будет возвращена, если нет заменённых совпадений.)
Если pattern содержит подстроку в скобках, replacement может содержать подстроки вида \\digit, которые будут заменены текстом, совпавшим с digit'ной подстрокой в скобках; \\0 воспроизведёт всё содержимое строки. Может использоваться до 9 подстрок. Скобки могут вкладываться, и тогда они подсчитываются по открывающим скобкам.
Если совпадения в string не найдены, то string вернётся без изменений.
Например, следующий фрагмент кода печатает "This was a test" три раза:Пример 1. ereg_replace()
Код:
$string = "This is a test";
echo ereg_replace (" is", " was", $string);
echo ereg_replace ("( )is", "\\1was", $string);
echo ereg_replace ("(( )is)", "\\2was", $string);
Единственное, что необходимо отметить - если вы используете целочисленное значение как параметр replacement, вы можете не получить ожидаемый результат. Это из-за того, что ereg_replace() будет интерпретировать число как простое значение символа и применит его. Например:Пример 2. ereg_replace()
Код:
<?php
/* Это не будет работать так, как ожидается. */
$num = 4;
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Output: 'This string has words.' */
/* Это будет работать. */
$num = '4';
$string = "This string has four words.";
$string = ereg_replace('four', $num, $string);
echo $string; /* Output: 'This string has 4 words.' */
?>
Пример 3. Замена URLs ссылками
Код:
$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);
Теперь твой случай:
Код:
<?PHP
//Создаем массив, где ключ - нехорошее слово, значение хорошее
$blacklist = array(
'редиска'=>'нехороший человек',
'жмурик'=>'покойник',
'гад'=>'сам дурак'
)
//тут перебираем, и подставляем значения в функцию ereg_replace()
foreach($blacklist as $key => $value)
{
$string=ereg_replace ($key,$value, $string);
}
Echo $string; //На выходе выводим и получаем чистую строку
?>