Hola Fernando
Elaboré una clase en PHP que sirve para rellenar plantillas, me parece que puede servirte para lograr este script.
Te explico brevemente y espero no complicarme mucho.
Te estoy poniendo adjunto un archivo que contiene la clase
plantilla y su única función es abrir un documento *.tpl en el cual tu colocas toda la estructura de tu página HTML. Después puedes añadir campos y bloques en esa plantilla que serán sustituidos en tiempo de ejecución por valores provenientes de una base de datos.
Por ejemplo, puedes crear una achivo digamos
ejemplo.tpl con tu código HTML y para insertar un campo colocas el identificador de ese campo entre llaves
Luego desde PHP haces algo como esto:
$tpl = new plantilla('ejemplo.tpl');
$tpl->SetVariable('mi_campo','Este es un texto que proviene de la base de datos');
echo $tpl; // Vuelca el contenido de la plantilla en pantalla
El resultado final es una página HTML de la siguiente forma:
<p>Este es un texto que proviene de la base de datos
</p>
Regularmente obtenemos múltiples filas desde una tabla y deseamos enviarlas a pantalla. Para resolver esto, inventé un mecanismo llamado 'bloques' en los cuales puedes crear un tipo de bloque que se repetirá N veces mientras recorres los registros de una tabla, por ejemplo:
<!-- #define_bloque mis_datos -->
<!-- #end_bloque -->
En este caso sobre el archivo ejemplo.tpl hemos creado un bloque llamado mis_datos, es importante respetar la sintaxis, es decir se deben usar las etiquetas
<!-- #define_bloque nombre --> y
<!-- end_bloque --> para que la plantilla reconozca este bloque. Se pueden agregar múltiples bloques en una misma plantilla
Ahora solo resta rellenar la plantilla desde PHP
$tpl = new plantilla('ejemplo.tpl');
$block = $tpl->getBloque('mis_datos');
$str = '';
//Ahora se rellenas las variables contenidas en el bloque
$block->SetVariable('una_celda','Esta es la fila 1');
//El proceso se puede repetir N veces
$block->SetVariable('una_celda','Esta es la fila 2');
$block->SetVariable('una_celda','Esta es la fila 3');
$tpl->setBloque('mis_datos',$str);
echo $tpl;
Lo que obtenemos al final es una página HTML con tres filas dentro de una tabla, obviamente los valores pueden ser tomados de una base de datos.
<td>Esta es la fila 1
</td> <td>Esta es la fila 2
</td> <td>Esta es la fila 3
</td>