Generalmente preferisco creare un file di "layout" piuttosto che dover includere sia un'intestazione che un piè di pagina su ogni pagina. È più flessibile.
Ecco uno snippet di uno dei miei progetti:
ob_start();
include '../views/'.$templateFile;
$pageContent = ob_get_clean();
include '../views/layouts/'.$layoutFile;
Tutto ciò che devi fare è abilitare il buffering dell'output, includere il template, quindi chiamare ob_get_clean() per catturare il contenuto del template e inserirlo in una variabile. Una volta inserito in una variabile, puoi includere il file di layout principale, che dovrebbe contenere $pageLayout da qualche parte all'interno.
per es.,
<html>
<head>
<title>Your Site</title>
</head>
<body>
<!-- header here -->
<?= $pageContents ?>
<!-- footer here -->
</body>
</html>
Detto questo, sicuramente Code Igniter ha una specie di modello incorporato, no? Non mi è familiare. Modifica: Apparentemente non . Tipo di sciocco davvero; con il caching, il costo delle prestazioni di un bel motore di template è trascurabile.