Pues no es nada raro lo que propones .. Tan solo tienes que componer tu HTML en PHP bajo una variable y mandarlo a un archivo nuevo via funciones fopen() fwrite() y afines ..
$archivo=fopen() ....
fwrite($HTML,$archivo)
etc ..
El $HTML .. o lo compones en una variable .. o dejas q lo escriban en un <texarea> de un formulario ...
Incluso tienes algunos editores HTML "visual" para usarlo con IE 5.5 en adelante o NS6 si llega .. el cual al terminar tu proceso "en el cliente" .. envia ese HTML generado como si de un <texarea> de un formulario vulgar se tratase .. Tu scritp PHP .. solo lo escribiría en el servidor via las funciones que te mostré y afines.
Un ejemplo de editor HTML visual (DHTML):
http://www.devarticles.com/art/1/90
Un saludo,