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

    +172

    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
    $var=trim($var);
    $var=str_replace("\t", ' ',$var);
    $var=str_replace("\r", ' ',$var);
    $var=str_replace("\n", ' ',$var);
    $var=str_replace('          ', ' ',$var);
    $var=str_replace('         ', ' ',$var);
    $var=str_replace('        ', ' ',$var);
    $var=str_replace('       ', ' ',$var);
    $var=str_replace('      ', ' ',$var);
    $var=str_replace('     ', ' ',$var);
    $var=str_replace('    ', ' ',$var);
    $var=str_replace('   ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);
    $var=str_replace('  ', ' ',$var);

    Надежно, чо.

    Запостил: velosipedistorg, 21 Февраля 2012

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

    • Зато "красиво".
      Ответить
    • это кодер с художественным образованием
      Ответить
    • $var=str_replace(        '*'        , ' ',$var);
      $var=str_replace(       '   '       , ' ',$var);
      $var=str_replace(      '     '      , ' ',$var);
      $var=str_replace(     '       '     , ' ',$var);
      $var=str_replace(    '         '    , ' ',$var);
      $var=str_replace(   '           '   , ' ',$var);
      $var=str_replace(  '             '  , ' ',$var);
      $var=str_replace( '               ' , ' ',$var);
      $var=str_replace('                 ', ' ',$var);
      Ответить
    • Не все разбираются в регулярках. Из своего ближнего окружения я даже не знаю, кого и назвать. И с дальним та же хрень. Ну, разве что два очень старых знакомых, оба сисадмины, да пара программистов из Москвы.
      Ответить
      • В этом случае можно было и без регулярок обойтись.
        Ответить
        • Весьма сожалею, что не могу навскидку придумать никакого варианта, кроме безумного цикла. Может быть, поможете?
          Ответить
          • split(' ').join(' ')
            Ответить
            • В php не прокатит, кстати. Там есть explode, но оно ведёт себя безумнокак и должно, т.е. сплитит по _каждому_ пробельному элементу. Так что предварительно придётся почистить массив от пустых элементов.
              Ответить
              • Даже в String.split унылой жабы можно это конфигурить. неужели в пыхепе нельзя?
                Ответить
                • ВНЕЗАПНО!
                  public String[] split(String regex)
                  Ответить
                  • Ведь это не всегда решает проблему пустых элементов, не так ли? А вот split(regex, -2) - решает.
                    Ответить
                    • Речь не об этом.
                      См. выше по треду

                      >В этом случае можно было и без регулярок обойтись.
                      >Весьма сожалею, что не могу навскидку придумать никакого варианта, кроме безумного цикла. Может быть, поможете?
                      Ответить
                      • ну да, пробел - это тоже регулярка :)
                        Joiner.on(' ').join(Splitter.on(' ').omitEmptyStrings().split(someText))
                        Ответить
                        • /* Удаляет пустые значения из массива */
                          function pack_arr($arr) {
                          $newarr = array();
                          foreach($arr as $a) {
                          if($a) $newarr[] = urldecode($a);
                          }
                          return $newarr;
                          }
                          такой вариант не?
                          Ответить
          • Нет. Ну уж лучше код цикла чем цикличная копипаста.
            Какой нибудь
            while(search(" ") != -1) $var = string_replace(" ", " ", $var);
            Ответить
            • Молодец. Теперь посчитай сложность.
              Ответить
              • А регулярки будут быстрее?
                Ответить
                • >while(search(" ") != -1) $var = string_replace(" ", " ", $var);
                  Бесконечный цикл.

                  Простые регэксы ВСЕГДА быстрее бесконечных циклов и прочих быдлоалгоритмов. Особенно на интерпретируемых языках.
                  Ответить
                • да, регулярки компилятся в конечный автомат и работают очень быстро.
                  Ответить
                  • Да, а если динамически составлять регулярки?
                    Ответить
                    • regexp1.pas?
                      Ответить
                    • составляй сколько хочешь, компилить то нужно только один раз:
                      myRegex = somePart + anotherPart;
                      Pattern compiledRegex = Pattern.compile(myRegex);
                      Ответить
      • [:space:]+ совсем несложная регулярка.
        Ответить
        • Никто и не говорит, что она сложная. Факт остаётся фактом - немногие люди могут освоить регулярки, кому-то проще так, как в примере.
          Ответить
          • Да что там говорить, некоторые вот даже циклы не могут освоить - им проще без них.
            Ответить
          • > немногие люди могут освоить
            регулярки
            что не мешает их применять
            Ответить
    • показать все, что скрытоvanished
      Ответить

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