Buenas. Hace un tiempo que estoy mirando formas de separar el código PHP del HTML. Lo primero que encontré tanto en Internet como en varios libros es que se recomendaba el uso de Smarty. Personalmente me gusta hacer las cosas desde cero y no quería usar un motor de plantillas. Así pues me puse a escribir y terminé haciendo lo que os muestro bajo estas líneas. Funciona bien en todo lo que he hecho, pero me gustaría saber vuestra opinión y saber si realmente es un buen método o mejor lo descarto por otro. ¿Qué usáis vosotros para separar el código?
Archivo: index.tpl.html
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Template</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
¡Hola! ¿Qué tal estáis {a}, {b}, {c} y {d}?
</body>
</html>
Archivo: index.php
Código PHP:
<?php
function template($ruta,$array)
{
/* Tomamos el archivo */
$template = file_get_contents("$ruta");
/* Reemplazamos el contenido entre corchetes por la etiqueta PHP */
foreach ($array as $a => $b) {
$template = str_replace("{".$a."}", "$b", $template);
}
/* Mostramos el template con los cambios realizados */
echo eval("?".">$template");
}
/* Variable al azar */
$rand = "1";
/* Establecemos las variables */
$ruta = "./index.tpl.html";
$array = array(
"a" => "<?php echo $rand; ?>",
"b" => "<?php echo 'Pepe'; ?>",
"c" => "<?php echo 'Manolito'; ?>",
"d" => "<?php echo 'Pedro'; ?>"
);
/* Llamamos a la función */
template($ruta,$array);
?>
Un saludo y gracias
.