Народ, подскажите как быть. Делаю антимат для г.книги.
Сделал такую функцию.
$text - это сам текст, откуда надо маты вырезать.
$badwords - это список плохих слов.function flt_bdwrd ($text, $badwords)
{
$bw=explode(" ", $badwords);
foreach ($bw as $badword)
{
$text = eregi_replace($badword, "<censored>", $text);
}
return $text;
}
Дык вот получается такая штука.
eregi_replace не понимает разный регистр русских букв.
А с английскмми все нормально.
Может кто чего посоветует.
>Народ, подскажите как быть. Делаю антимат для г.книги.
>Сделал такую функцию.
>$text - это сам текст, откуда надо маты вырезать.
>$badwords - это список плохих слов.
>
>function flt_bdwrd ($text, $badwords)
>{
> $bw=explode(" ", $badwords);
>
> foreach ($bw as $badword)
> {
> $text = eregi_replace($badword, "<censored>", $text);
> }
> return $text;
>}
>
>
>Дык вот получается такая штука.
>eregi_replace не понимает разный регистр русских букв.
>А с английскмми все нормально.
>Может кто чего посоветует.
надо правильно настроить локаль в системе
>>Народ, подскажите как быть. Делаю антимат для г.книги.
>>Сделал такую функцию.
>>$text - это сам текст, откуда надо маты вырезать.
>>$badwords - это список плохих слов.
>>
>>function flt_bdwrd ($text, $badwords)
>>{
>> $bw=explode(" ", $badwords);
>>
>> foreach ($bw as $badword)
>> {
>> $text = eregi_replace($badword, "<censored>", $text);
>> }
>> return $text;
>>}
>>
>>
>>Дык вот получается такая штука.
>>eregi_replace не понимает разный регистр русских букв.
>>А с английскмми все нормально.
>>Может кто чего посоветует.
>
>
>надо правильно настроить локаль в системеЛокаль проавильная.
Я уже нашел чего делать.
Есть такая функция string sql_regcase(string).
Она преобразует строку к такому виду, где каждая буква заменяется парой букв [БОЛЬШАЯмаленькая] в квадратных скобках.
И эту преобразованную строку уже можно подставлять в регулярные выражения.echo sql_regcase ("Привет, Мир!");
напечатает
[Пп][Рр][Ии][Вв][Ее][Тт], [Мм][Ии][Рр]!