Gracias, aunque lo que busco es mucho más sencillo. Viendo los ejemplos conseguí hacer algo que funcionara, me gustaría que me critiquen el código.
Tenemos un archivo
plantilla.php que será el archivo común a todas las páginas, y tiene dos zonas que variarán, {TITULO} y {CONTENIDO}
Después la clase está definida en el archivo
class.php Tiene 3 funciones: la primera, para obtener el archivo de la plantilla, la segunda para introducir los datos variables y la tercera para mostrar la página.
Finalmente,
pagina.php es el archivo que usa la plantilla.
--- plantilla.php --- Código PHP:
<html>
<head>
<title>{TITULO}</title>
</head>
<body>
{CONTENIDO}
</body>
</html>
--- class.php --- Código PHP:
<?
class Pagina {
// Cargamos la plantilla
function crear($plantilla){
ob_start();
include($plantilla);
$this -> salida = ob_get_contents();
ob_end_clean();
}
// Cambiamos variables
function variable($tengo,$quiero){
$this -> salida = str_replace( $tengo , $quiero , $this -> salida );
}
// Mostramos la página
function mostrar(){
echo $this -> salida;
}
}
?>
--- pagina.php --- Código PHP:
<?
// Cogemos la clase "pagina"
include('class.php');
// Creamos la pagina, ponemos la plantilla, sustituimos variables
$salida = new Pagina;
$salida -> crear("plantilla.php");
$salida -> variable("{TITULO}","Este es el titulo");
$salida -> variable("{CONTENIDO}","Esto son los contenidos");
// Mostramos la página
$salida -> mostrar();
?>
Me gustaría que critiquen el código, especialmente la primera función de la clase, por si hay una forma más sencilla de obtener la plantilla. Lo hice con las funciones ob_ pero también había pensado en hacer un
implode("",file("plantilla.php")); pero no sé cual es más beneficioso para el servidor, pues me interesa ante todo mantener el menor tiempo posible de ejecución del script.
Saludos