Seguro han hecho paginas en PHP y se han visto en el problema que mezclar codigo HTML con codigo PHP no resulta muy practico, el archivo PHP final termina siendo sumamente complicado y dificil de editar.
Aunque PHP es un lenguaje pensado para crear plantillas, el estar poniendo etiquetas <?echo $variable; ?> muchas veces no resulta demasiado practico. Por ello la mejor forma es crear archivos de plantillas con etiquetas como {titulo} que luego pueden ser reemplazadas por variables.
Al trabajar de esta forma nos facilita la edicion del aspecto de la pagina, sin necesidad de tocar codigo importante.
En internet se hayan varios ejemplos de sustitucion como la mencionada anteriormente, sin embargo para facilitarles la vida, cree una funcion que se encarga de tomar un array de variables, con sus respectivos nombres y sustituirlos en la pagina que elijamos.
<?php
function procesarPlantilla($archivo,$valores) {
if(is_file($archivo)) { // Revisa si el archivo existe
$buffer = file_get_contents($archivo);
foreach($valores as $var=>$val) { // Sustituimos cada valor del arreglo
$buffer = str_replace($var,$val,$buffer);
}
return $buffer; // se devuelve el archivo con valores sustituidos
} else
return NULL; // Devolvemos NULL si no hay archivo
}
?>
Aqui esta un ejemplo de su utilizacion:
<?php
vars["{titulo}"] = "Mi pagina web";
vars["{contenido}"] = "Prueba";
echo procesarPlantilla("plantilla.html",vars);
?>
Los nombres de los elementos en el arreglo asociativo son substituidos por su valor correspondiente, asi si tuvieramos un archivo html como este:
<html><head><title>{titulo}</title></head><body>{contenido}</body></html>
La salida que obtendriamos luego de procesar la plantilla seria:
<html><head><title>Mi pagina web</title></head><body>Prueba</body></html>
Como pueden observar, ahora para cambiar el aspecto de la pagina simplemente tendran que modificar el archivo plantilla y listo!! es muy util cuando se quiere tener la flexibilidad de modificar el aspecto sin tener que tocar nada de codigo importante.
Espero les sea de utilidad !!