Para esos casos .. te interesaría trabajar con algún sistema de "templates" que tenga fucionalidades de caché ..
Ejemplo (con esa funcionalidad de caché) es la classe de Nok:
Noktemplate.
http://www.jpw.com.ar/?lugar=noktpl
Y si quieres crear ese "caché" tu manualmente tan sólo tienes que volcar todo el HTML generado hacia una variable y de ahí al disco (a un archivo) con fopen() -> fwrite() funciones ..
Para "volcar" todo tu HTML generado desde PHP debes usar las funciones para control del buffer de salída:
ob_start() y funciones afines .. Con esas funciones "capturaras" todo el HTML/etc generado para que puedas hacer tu fwrite() con esa variable.
Un saludo,