|
|
|
| Сразу извиняюсь. Мозги после Великодня плохо варят. Сценарий следующий.. Выбрал сообщение из базы данных $msg, обработал его пользовательской функцией на устрание матов $msg = delmat($msg); сама функция состоит в замене $mat = array('мат1', 'мат2', 'и так далее'); на массив тех же '***'. Тут возникло желание если в сообщении обнаружен мат снять с юзера баллы (чат). Как правильно и оптимально проверить на наличие значения из массива $mat? Замена то происходит. Если получу результат то далее уже сам справлюсь. А то блин что то такое невообразимое ща сочиняю. | |
|
|
|
|
|
|
|
для: Giga
(09.04.2007 в 15:59)
| | Функция str_replace() имеет четвёртый параметр, который возвращает количество замен, которые были произведены в тексте. | |
|
|
|
|
|
|
|
для: cheops
(10.04.2007 в 00:15)
| | Спасибо. Только поздно вспомнил о том что тему эту поднял. В очередной раз изобретал велосипед. Вот конструкцию я изобрел методом тыка
include "./am.php"; //массив матов?$cm=count($mat); //посчитаем сколько матов в массиве ?for($i=0; $i<=$cm; $i++) //пустим их в цикл?{? $checkmat = @strstr("$msg", "$mat[$i]"); //strstr() одна из функций поиска в строке, можно и другие пробовать так как эта хотя и дает нам результат не совсем правильная, поэтому я ее перекрыл собакой? if($checkmat) // если нашли наличие мата в сообщении? {? $msg=str_replace("$mat[$i]","[цензура]",$msg); //заменяем мат на [цензура]? $ulogin=$login['login'];? @mysql_query("insert into `".$px.$mtable."` values(0,'Полицай','Нарушение правил $ulogin!','','','".time()."','$room');");? //Вот здесь если нужно можно запустить бот Полицай??
|
| |
|
|
|