За последние 24 часа нас посетили 22377 программистов и 1024 робота. Сейчас ищут 656 программистов ...

Динамический include в function

Тема в разделе "PHP для профи", создана пользователем zhenia3003, 29 мар 2018.

  1. zhenia3003

    zhenia3003 Активный пользователь

    С нами с:
    20 авг 2012
    Сообщения:
    175
    Симпатии:
    3
    Приветствую!
    Хочу выводить в цикле функции файл php, но из-за ob_start и ob_get_clean загрузка страницы заметно увеличивается, как можно это исправить?
    PHP:
    1. function siteTabs($rows){
    2.     global $db;
    3.     $r.='<div class="tabs">';
    4.     $r.= ' <ul>';
    5.     foreach ($rows as $key => $value) {
    6.         $r.= '<li>'.$key.'</li>';
    7.     }
    8.     $r.= '</ul>';  
    9.     $r.= '<div>';
    10.  
    11.     foreach ($rows as $key => $value) {
    12.         $r.= '<div>';
    13.         ob_start();
    14.         include $_SERVER['DOCUMENT_ROOT'].$value;
    15.         $r.= ob_get_clean();
    16.         $r.= '</div>';
    17.     }
    18.     $r.= '</div>';
    19.     $r.= '</div>';
    20.     return $r;
    21. }
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.551
    Симпатии:
    1.754
    Не делать ob_start(0 и ob_get_clean в цикле, к примеру, а собрать заранее всё?
    PHP:
    1. <?php
    2. function siteTabs($rows){
    3.     global $db;
    4.     $r.='<div class="tabs">';
    5.     $r.= ' <ul>';
    6.     foreach ($rows as $key => $value) {
    7.         $r.= '<li>'.$key.'</li>';
    8.     }
    9.     $r.= '</ul>';
    10.     ob_start();
    11.      ?>
    12.     <div>
    13.  
    14.     <?php foreach ($rows as $key => $value) { ?>
    15.         <div>
    16.      
    17.         <?php include $_SERVER['DOCUMENT_ROOT'].$value; ?>
    18.        
    19.         </div>
    20.     <?php } ?>
    21.     </div>
    22.     </div>
    23.     <?php
    24.     $r .= ob_get_clean();
    25.     return $r;
    26. }
    Как-то так, если я нигде не ошибся
    --- Добавлено ---
    P.S. @Fell-x27 теме явно в новичках место.