header.php

$GLOBALS['TITLE'] = ''; //тут будет храниться заголовок страницы
//тут мы пишем наш код всех нужных нам компонентов
function settitle ($title) {
	// global $GLOBALS['TITLE'];
	$GLOBALS['TITLE'] = $title;
}
function showtitle () {
	echo "{TITLE}"; //выводим временный костыль для автозамены буферизированного контента
}
ob_start();
echo "<html><head><title>";
showtitle (); //выводим заголовок страницы
echo "</title></head><body>";

index.php

<?include('header.php')?>
<?php
settitle("Пример  gfbfdg fdgdfgfdgотложенных функций"); //обратите снивание заголовок наш уже вывелся выше
//но он был временно буферизирован и не попал на страничку
?>
<?include('footer.php')?>

footer.php

$content=ob_get_clean();//получаем весь буфер и очищаем его
//а теперь самое интересное замена титла на последний установленній
$content=preg_replace("!{TITLE}!", $GLOBALS['TITLE'], $content);
//выводим буферизированный контент
echo $content;