Функция антимат

1. Виталий (14.02.2011 / 22:27)
Страно, либо я что-то не улавливаю, либо что-то не ладное!
файл antimat.dat (В нем хранятся запрещенные слова по строчно)
1 слово
2 слово
3 слово
сама функция:
<?php
function antimat($msg) {
$mat = file("antimat.dat");
foreach ($mat as $value) {
if (!empty($value)) {
$msg = preg_replace("|$value|iu", "***", $msg);
}}
return $msg;
}
?>
в результате заменит "3 слово", а первые два не тронет. если добавить четвертую строку, то его заменит, первые три не тронет. что я нет то делаю?

2. shurik (15.02.2011 / 13:21)
делал что то подобное вот таким способом:
<?
function antiman($msg)
{$file=file("antimat.dat");$i=0;
while($i < count($file)){$msg=str_replace(rtrim($file[$i]),'***',$msg);$i++;}
return $msg;} ?>
попробуй так

3. Виталий (15.02.2011 / 23:06)
2. shurik, пасиб smile твоя фильтрует отлично на ура obana пжл, что я все ж не улавливаю, что приведенная функция мною не фибьтрует мат??? sad

Добавлено через 09:17 сек.
2. shurik, собственно в функцию преведенную мною нужно было добавить rtrim() smile с ней все работает. спасибо большое

URL: https://visavi.net/topics/18749