Output buffering and static content inclusion - PHP
When I started making this site, I was thinking up of a new way to make the inclusion system for including (i.e. through include()
) the static header and footer’s HTML for each dynamic page that was displayed.
The problem was, I couldn’t go by my old way of include("header"); include("content"); include("footer")
, because I wanted a variable title for each content page, and the only place to set that was in the content file, but it needed to be echoed in the header’s markup.
The solution, I found, was to use output buffering to first include and store the contents of the content file, then include the header file, which read the $page_title
, before displaying the buffered content.
<?php
$page = urlencode($_GET['p']);
include("config.php");
ob_start();
include("$page.php");
$page = ob_get_contents();
ob_end_clean();
include("header.php");
echo $page;
include("footer.php");
?>
Simple, and in this way any variables that need to be set can be done so in the $page file, before being passed to header.php.