| |
|
|
| | Как можно защитить гостевую книгу от матюковых вырожений? | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 18:59)
| | | Составить словарь матюковых выражений и str_replace =) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(12.08.2006 в 19:02)
| | | А как сделать проверку на наличие в ней этих вырожений? | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 19:05)
| | | В ком "в ней" ?
Просто при добавлении сообщения обрабатываем последнего функцией anti_matyukovie_virazheniya =))))
ЗЫ: просто $сообщение = str_replace ( $массив_выражений , ' [цензуред] ' , $сообщение); | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(12.08.2006 в 19:09)
| | | Все понял. ТОгда мне прейдется еще и учитывать регистр букв? А можно что бы он не учитывался? Т.е. возьмем слово... "дурак". Его можно написать как угодно "ДУРАК", "Дурак", "дурак"..... Можно сделать чтобы это слово воспринималось как одно, без учета регистра? | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 21:58)
| | | Если будешь заменять маты str_replace, то можно воспользоваться ф-й str_ireplace - регистро-независимый вариант первой ф-и ...
Можно через рег. выражения замениять .. eregi_replace или preg_replace c модификатором i | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 08:15)
| | | $pattern = "Дурак";
$replacement = "Дурак";
$umsg = str_ireplace($pattern, $replacement, $umsg);
Происходит ошибка на странице. Страница добавления сообщения не отоброжается | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 10:35)
| | | str_ireplace() появилась только начиная с PHP 5 - у вас какая версия PHP? | |
| |
|
|
| |
|
|
| |
для: cheops
(13.08.2006 в 11:40)
| | | php-4.3.2 | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 11:45)
| | | Значит использовать str_ireplace не получиться, следует использовать либо str_replace, предварительно изменяя регистр, либо регулярные выражения с модификатором i. | |
| |
|
|
| |
|
|
| |
для: cheops
(13.08.2006 в 12:13)
| | | Все получилось, у меня дома стоит php-4... , А на серваке сайта 5.....
Теперь я тоже хочу себе установить PHP-5, где его можно скатаь бесплатно? | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 12:31)
| | | Последнюю версию можно загрузить с зеркал ссылки на которые можно найти на php.net. | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 08:15)
| | | а как добавлять слова в $pattern = "Дурак", ... , ...., ... ,;
через запетую? Или пробелы? | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 12:46)
| | | не, не так ... это должен быть массив
либо
$pattern[] = "Дурак";
$pattern[] = "Дура";
|
Либо
$pattern = array ("Дурак", "Дура");
|
=))) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 14:43)
| | | Добустим я хочу сделать типа формы для допалнения матов в текстовый файл. Вот что у меня получилось:
<form name="name" action="mat.php" method="post">
<input name="name" type="text" value="">
<input type="submit" value="GO">
</form>
<?php
$file = fopen("mat.txt","a+");
fwrite($file,$_POST['name']."\r\n");
fclose($file);
?>
При каждом добавлении нового мата в файл, образуется пропущенные строки, т.к. "\r\n". Можно от это как нибудь избавится?
Теперь следующее... Сама форма для чтения из файла мат.вырожений...
@setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
$replacement = "***";
$arr = file("mat.txt");
for($i=0; $i < count($arr); $i++)
{
//printf("%s<br>", $arr[$i]);
}
$pattern=$arr[$i];
$msg = str_replace($pattern, $replacement, $msg);
Тут то я и "зоблудился"... Помогите, пожалуйсто... | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 22:34)
| | | // При каждом добавлении нового мата в файл, образуется пропущенные
// строки, т.к. "\r\n". Можно от это как нибудь избавится?
Эт я не понял )) ....
// Тут то я и "зоблудился"... Помогите, пожалуйсто...
Вот это $pattern=$arr[$i]; , наверное надо заменить на это $pattern=$arr;
(хотя тоже не понятно в чем вопрос.. :)) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 22:54)
| | | $pattern=$arr; Я пробывал... Не работает. Не фильтрует базар | |
| |
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 23:03)
| | | Ну эт потому что опять таки маты берутся из файла и вконце стрки стоит знак переноса строки
@setlocale(LC_ALL, array ('ru_RU.CP1251', 'rus_RUS.1251'));
$replacement = "***";
$arr = file("mat.txt");
for($i=0; $i < count($arr); $i++)
{
//printf("%s<br>", $arr[$i]);
$pattern[$i] = trim($arr[$i]);
}
$msg = str_replace($pattern, $replacement, $msg);
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 23:09)
| | | Не работает | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 23:09)
| | | А почему мы пишим так $pattern[$i] = trim($arr[$i]);
а выводим так $msg = str_replace($pattern, $replacement, $msg);
Хотя я уже пробывал по разному, ничего не получается! | |
| |
|
|
| |
|
|
| |
для: Roo$
(14.08.2006 в 22:09)
| | | Да все работает ... специально перепроверил ...
попробуй echo $msg; ......... ;))))
/// А почему мы пишим так $pattern[$i] = trim($arr[$i]);
/// а выводим так $msg = str_replace($pattern, $replacement, $msg);
Пишем так, чтобы перебрать и обработать каждое слово из массива (от 0 до count). В итоге получаем практически такой же массив, только в нем в конце слов не будет \r\n .
А в функцию уже подставляем сам массив, чтобы замена шла не конкретного слова (напр. $pattern[2] ), а всех слов что встратятся в массиве
После str_replace получаем строку, где все плохие слова будут заменены на '***' | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(15.08.2006 в 07:18)
| | | Сорри, перепроверил еще раз: с твоей формой действительно не работает ... я проверял только скрипт, а форму написал сам ....
<form name="name" action="" method="post">
<input name="name" type="text" value="">
<input type="submit" value="GO">
</form>
<?php
$file = fopen("mat.txt","a+");
fwrite($file,$_POST['name']."\r\n");
fclose($file);
?>
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(13.08.2006 в 23:09)
| | | Все заработало!!! Большое спасибо!!!!!!! А как проверить, что если пользователь ввел мат через пробелы "Д У Р А К". | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 18:59)
| | | Главное - не переусердствовать=) Иначе будет "Не оскор#$%йте Шума#$%а!" | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 18:59)
| | | Можно воспользоваться фильтром мата из раздела downloads http://www.softtime.ru/info/matu_net.php. | |
| |
|
|
| |
|
|
| |
для: Roo$
(12.08.2006 в 18:59)
| | | С этим мы разобрались... Теперь подскажите пож. как можно защитить гост.книгу от смайликов.
Например в каждое сообщение можно вставлять, пусть, макисмум 5 смайликов. Если больше, то они откидываются... | |
| |
|
|
|
|
| |
|
|
| |
для: Roo$
(13.08.2006 в 12:35)
| | | Под новые вопросы, лучше заводить новые темы. | |
| |
|
|