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

    +156

    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
    <?php
    
            // ...
            $buffer='$buffer';
            $text = '$text';
            // ...
    
            $file = <<<CODE
    <?php
    
        // ...
    
        function prepareText($text)
        {
            $text = str_replace("\\n\\r", " ", $text);
            $text = str_replace("\\r\\n", " ", $text);
            $text = str_replace("\\n", " ", $text);
    
            return $text;
        }
    
        // ...
    CODE;

    Суть такова: нужно было генерировать пхп код, который впоследствии должен был выполняться на клиенте.
    Угадайте, зачем нужны переменные $buffer, $text и еще много таких, в которых лежит имя самой переменной в строке?

    Запостил: user654321, 26 Октября 2010

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

    • Наверное, что бы ни в коем случае не экранировать символ $ или использовать одинарные кавчки, или конкатенацию строк при выводе.
      (религиозные убеждения?)

      echo "$buffer += $text;"
      на выходе получим $buffer += $text;
      Ответить
      • > (религиозные убеждения?)
        я склонялся к некомпетентности
        Ответить
    • кажется str_replace и с массивами неплохо работает...
      Почему именно так использовали?.
      Ответить
      • Это тоже для меня загадка, как и ~50% кода того проекта, откуда я это достал.
        Ответить
    • а что, если сделать $$buffer?
      а код пхп внутри переменной это вообще шедевр. голосовал +1, но это бы стоило заплюсовать )
      Ответить
      • Ноу проблем, если надо $$buffer, автор так и напишет
        $buffer='$$buffer';
        Ответить
        • нет.
          <?php
          $buffer='$buffer';
          var_dump($$buffer);
          Ответить
          • Определенно, то же самое, что сподвигло автора на написание этого:
            $buffer='$buffer';
            Ответить
    • что то знакомое, ГК
      Ответить
      • только не говорите, что нашли по адресу c:\Musor\ )))
        Ответить
        • с:\Нужный мусор\
          :)
          Ответить
          • помнится название группы garbage зародилось в честь разгребания мусора в виде сэмплов NIN
            Ответить

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