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

    +173

    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
    $pattern = '/[^A-Za-zА-Яа-я0-9]/u';
    $phrase = $this->data['ProjectsPhrase']['phrase'];
    
    $phrase = preg_replace($pattern, ' ', $phrase);
    
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = str_replace('  ', ' ', $phrase);
    $phrase = trim($phrase);

    Вот такое говнокодище встретил в проекте. Паранойя такая паранойя…

    Запостил: govnouzver, 17 Февраля 2011

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

    • это не паранойя, это элементарное невежество
      Ответить
      • не, это чтоб наверняка)
        Ответить
        • 'a b' -> 'a b' -> 'a b' -> 'a b' -> 'a b'

          Это именно невежество (особенно в контексте первых строчек).

          Кстати, некоторые русские буквы -- йок.
          Ответить
    • показать все, что скрытоtrim()
      Ответить
      • Нифига, /\s+/ -> ' '
        Ответить
        • -> ' '. А потом всё же trim() нужен.
          Ответить
          • я так понял, автору не нужно убирать пробелы, нужно сократить их до одного.
            Ответить
            • Да... судя по коду, семь раз :) что бы наверняка :)
              Ответить
              • Данный код сжимает последовательности до 128 пробелов.
                Ответить
            • Символы кроме допустимых заменить пробелами, повторяющиеся пробелы сжать в один, пробелы в начале и конце отбросить.

              Первые два шага можно объединить в один (достаточно поставить + после ] в шаблоне), третий делается trim-ом.
              Ответить
            • Кэп?
              Ответить
    • На 1С последовательность команд 6-12 можно было бы заменить одной командой, но с префиксом "НАВЕРНЯКА".
      Ответить

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