Вопрос № 36108: Уважаемые эксперты!
В один прекрастный день решил сварганить такую шкуку как антимат. Знаю этот вопрос и раньше обсуждался здесь, но решусь. Для начала решил воспользоваться str_replace(), но дело в том что она учитывает регистр, а всем изве...
Вопрос № 36.108
Уважаемые эксперты!
В один прекрастный день решил сварганить такую шкуку как антимат. Знаю этот вопрос и раньше обсуждался здесь, но решусь. Для начала решил воспользоваться str_replace(), но дело в том что она учитывает регистр, а всем известные слова можно писать по разному "цензура", "ЦеНзура". Если перевести всю стоку в верхний регистр то вид сообшения как вы понимаете портится. Пробовал делать параллельный поиск и замену, но брррр...
Посоветуйте метод (код не обязательно).
P.S. Ссылки не присылать! Хочется сделать самому...
Отвечает: Ерёмин Андрей
Hello, Golden Spider! str_ireplace - Регистро-независимый вариант функции str_replace().
--------- Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 24.02.2006, 20:01 Оценка за ответ: 5 Комментарий оценки: спасибо конечно Но php4
Отвечает: nkravt
Здравствуйте, Golden Spider!
Для замены слов без учета регистра в php4 можно использовать функцию регулярных выражений:
string eregi_replace (string pattern, string replacement, string string)
Эта функция идентична ereg_replace(), но игнорирует регистр алфавитных символов при поиске совпадений.
Пример:
$string = "This iS a test";
echo eregi_replace (" is", " was", $string);
Ответ отправила: nkravt (статус: 2-ой класс)
Отправлен: 25.02.2006, 09:27 Оценка за ответ: 5 Комментарий оценки: Пусть теперь попробуют ругнутся! :) Всё работает идеально! Спасибо!
Отвечает: Samum
Здравствуйте, Golden Spider!
В общем, регулярные выражения действительно кажутся оптимальным решением. Однако, я посоветовал бы использовать perl-совместимые регулярные выражения (соответственно, процедура preg_replace() вмето ereg_replace()), т.к. работают они несколько быстрей, и при большом списке "нецензурных слов" это может оказаться полезным.
Выглядеть это будет примерно так, как в приложении (с поправками на твой список и пр.)
Приложение:
--------- Если бы программистам за их ошибки отрывали части тела, то в конце концов им пришлось бы использовать голову!
Ответ отправил: Samum (статус: Специалист)
Отправлен: 25.02.2006, 14:13 Оценка за ответ: 5 Комментарий оценки: Good! Спасибо!