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

    +167

    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
    <?php
    /*///////////////////////////////////////////////
    Эта функция инклюдит файл.
    Все, что этот файл отправляет на вывод,
    не уходит на вывод, а возвращется этой функция
    
    Для работы, функция использует функции ob, 
    которые работают с буфером, поэтому 
    использовать их для друхих целей нужно очень 
    аккуратно и только, если вы знаете, 
    как все это функционирует
    ///////////////////////////////////////////////*/
    
    function s_file ( /*string-путь к файлу*/ $path )
    {
        ob_start() ;              //Запускает буферизацию вывода 
        require ($path) ;         //Запускает файл по адрессу  
        return ob_get_clean () ;  //Возвращает содержимое буфера или FALSE при ошибке
    }
    
    ?>

    Запостил: Berliner, 28 Июля 2010

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

    • Какой аккуратный и пунктуальный ньюфаг. Сам Кэп бы позавидовал.
      Ответить
    • Где здесь говногод, %username%?
      Ответить
      • Буфер устроен в виде стека, его надо закрывать, что бы не было проблем, если до этого он бы открыт.
        И если бы автор сам знал как это функционирует, то сначала получил содержимое буфера, потом закрыл буфер и после вернул результат, а еще после не писал бы последние 5 строчек комментария.

        Примерно так
        ob_start();
        require ($path) ;
        $content = ob_get_contents();
        ob_end_clean();
        return $content;
        Ответить
        • Функция ob_get_clean () не только возвращает содержимое буфера,
          но и закрывает буфер,
          заменяя таким образом функции ob_end_clean и ob_get_contents()
          Пруфлинк: http://de2.php.net/manual/en/function.ob-get-clean.php
          Ответить
          • ага, это мануал так говорит - не верьте. сам споткнулся об это при вложенных буферах. начинает сыпаться и путается в буферах
            все таки ob_get_contents перед ob_end_clean, как практика показала, надежнее
            Ответить
    • /**
      * Эта функция возвращает сумму двух (2) своих параметров
      * @param x -- первый (1) параметр (т.н. x)
      * @param y -- второй (2) параметр (т.н. y)
      **/
      function sum($x, $y) {
      $result =  $x+$y; //складываем два параметра, и сохраняем результат в переменной $result
      return $result; //возвращаем переменную $result. Эта переменная содержит сумму двух параметров: первого (x) и второго (y) (см. предыдущую строчку)
      }
      Ответить
    • <?php
      /*///////////////////////////////////////////////
      Это комментарий в файле PHP. 
      Комментарий не выполняет никаких действий.
      ///////////////////////////////////////////////*/
      
      // Сегодня на лабораторной работе 
      // мы изучили использование комментариев в PHP
      // Вывод: они действительно не
      // выполняют никаких действий.
      
      /*
      super-copyright 2010-3000!
      */
      
      ?>
      Ответить

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