Размещено: 2023-12-15 18:11:06

Теги: php, html

БУФЕРИЗАЦИЯ ВЫВОДА PHP, РАЗДЕЛЫ, КОМПОНОВКА КОНТЕНТА

Иногда код сделан так, что содержимое просто сразу выводится, а не пишется в какие-то переменные. И впринципе это очень удобно. Это очень просто, понятно, без всяких заморочек. И ничего плохого в этом нет.

Это огромный плюс PHP, что можно писать код именно таким образом, такое решение позволяет писать сайты очень быстро, без всяких шаблонизаторов. Но иногда порядок запроса данных из базы данных и порядок вывода отличается. Либо после компоновки страницы допустим цель сжать весь код в одну строку удалив все табуляции, переносы строк, двойные пробелы и так далее. Либо допустим очистить код для пользователей от логов, или информации которые предназначены для отладки, комментариев в html или js. Тогда удобно использовать буферизацию вывода.

<?php

// { ===================================== ФУТЕР ======================================================

ob_start();

echo '<p>Футер всегда делают снизу страницы!</p>';


$bufer_footer=ob_get_clean();

// } ================================== END ФУТЕР =====================================================
// { ===================================== КОНТЕНТ ====================================================

ob_start();

echo '<p>Буферизация, разделы, компоновка контента.</p>';

echo '<ul>';

//счетчик
$kolvo=0;

foreach(range(0,5) as $num)
{
    if($num<3)
    {
        echo '<li>'.$num.'</li>';
        $kolvo++;
    }
}

echo '</ul>';

$bufer_content=ob_get_clean();

// } ================================== END КОНТЕНТ =====================================================
// { ===================================== ЗАГОЛОВОК ====================================================

ob_start();

echo 'СТРАНИЦА СО СПИСКОМ ИЗ '.$kolvo.' ЭЛЕМЕНТОВ';

$bufer_h1=ob_get_clean();

// } ================================== END ЗАГОЛОВОК ===================================================

//дополнительно можем записать что-то важное для нас в текстовый файл, допустим логи работы нашей программы
file_put_contents('bufer.txt',$kolvo);

?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>БУФЕРИЗАЦИЯ</title>
</head>
<body>
<h1><?= $bufer_h1; ?></h1>
<div id="content"><?= $bufer_content; ?></div>
<div id="footer"><?= $bufer_footer; ?></div>
</body>
</html>

В итоге этот код выведет:

СТРАНИЦА СО СПИСКОМ ИЗ 3 ЭЛЕМЕНТОВ
Буферизация, разделы, компоновка контента.

0
1
2
Футер всегда делают снизу страницы!

И запишет текстовый файл bufer.txt с содержимым: 3


На эту страницу чаще всего попадают по запросам: буферизация, изменить порядок вывода