1. PHP / Говнокод #2700

    +156.5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    <?
    function antimat ($string = "", $replace = "")
    {
    if (!$replace) $replace="[beep]";
    
    
    $slovar = "уроды мудаки скоты чмо манда /* ...и много чего еще в том же духе*/ ";
    
    $ar_slovar = explode(" ", $slovar);
    $ar_string = explode(" ", $string);
    
    $result = "";
    
    	foreach ($ar_string as $string) {
    		foreach ($ar_slovar as $slovar) {
    		if ($string==$slovar) $string = str_replace($slovar, $replace, $string);
    		
    		}
    	$result.= $string." ";
    	}
    
    	return $result;
    	
    }//function
    ?>

    Гениальная реализация антимата. Стояла на одном весьма солидном сайте, забавляя юзеров гостевой.
    А вы не знали, что слова "команда" и "подстрахуй" - ужасно нецензурные?

    Запостил: wlad, 01 Марта 2010

    Комментарии (21) RSS

    • где-то я это уже видел
      ах да то был Уёбкилл))
      Ответить
    • Насколько я вижу, входящая строка делится пробелами и сравнивается целиком, поэтому пример с "команда" и "подстрахуй" не корректный.
      Ответить
      • Даже матерый матершинник, правильно расставляя знаки препинания, сможет легко обойти этот антимат)
        Ответить
        • А я и не утверждал, что этот антимат нельзя обойти. Я имел ввиду, что приведенный примеры с "команда" и "подстрахуй" с этим кодом не сработают, хоть автор и утверждает, что получится весело, типа "ко[beep]" и "подстра[beep]"
          Ответить
    • Сделайте меня развидеть это. Допустить столько тупых боянов в одной функции (конкатенация строк через конверсию в массив и обратно, создание массива из строки, потому что в падлу писать нормально, совершенно безбожное использование циклов) - это надо умудриться.
      Ответить
    • Лол? А вы пробовали
      echo antimat('команда подстрахуй');

      ?
      == как бы смеется над вашим постом.
      Ответить
    • Код, конечно, тянет на говнокод, но так как автор сам с ним не разобрался, ставлю минус
      Ответить
    • антимат сработает с точностью как идет в словаре, но, извернуться аля йух можно всегда ... и это все поймут ... вопрос нужно ли это вообще ? Ибо если захотеть можно обойти любой словарь мата ... и это все поймут кто будет это читать.
      Лучше грамотно модернизировать посты, следить за ними и наказывать за любое зачеркнутое матное слово, лучше заносить это дело в базу, чтобы модер сразу видел где возможно есть мат и кто его писал ...
      По этому за саму такую банальную идею что нехрена не изменит, ставлю минус, код еще более менее нормален, и сработает так как нужно, второй минус кода что про окончания автор не учел это раз, а во вторых два цикла хоть и работая чисто с переменными не есть круто ... вложенный цикл всегда был ущерблен, ущерблен и будет ..
      Ответить
      • Один из лучших антиматов - кнопка "известить модератора".
        Ответить
        • Тогда лучше оставить эту функцию, но вместо удаления слов извещать модератора. Тогда людям не надо будет придумывать слова как коверкать - всё будет сразу печататься, модератору искать не надо будет.
          Ответить
          • Есть и такой вариант как дополнительный "эшелон обороны" от нарушителей правил рисурса. Одно другому не мешает, даже наоборот.
            Ответить
          • Нанять индусов, как пришло сообщение, он удаляет весь мат и не надо функцию писать.
            Ответить
      • А в данном случае, ещё и ненадёжно. Словарь мата будет реагировать только на отдельные слова. Если проверять вхождения - будут банить суффиксы-префиксы.
        Ибо отличить "подстрахуй", "скипидар", "ослаблять" и, например, "хуйтеврот" может только совсем-совсем интеллектуальная система. И то, с ненулевой вероятностью найдут способ обломать.
        Ответить
    • На сайте не должно быть мата? Надо запретить и эту функцию! А то дети откроют исходный код странички и [beep] (пардон, охуеют, ибо код не сработал).
      Ответить
      • А давно ли PHP стал client-side?
        Ответить
        • А, тады ой. Был неправ. Вспылил.
          Я их не отличаю:)
          А думал вообще про JS.

          Но первые два предложения все равно в силе =:P
          Ответить
      • Сказанул, молодец.
        Ответить
    • Не понятно почему в этот список попали такие литературные слова как "скоты" и "уроды". Неумение использовать дефолтные параметры функции и кривая реализация в целом. И да, это боян )
      Ответить
      • Это с сайта либеральных, политкорректных хомячков.
        Ответить
    • дело Энциклонгов живет и процветает :)

      А вообще после того как пришлось 2 минуты парсить "бессhard-эротика" в стате на сайте по железу (монитор выбирал, читал всякие статьи), гм, ничему не удивляюсь :)
      Ответить

    Добавить комментарий