Les enregistrer où?
Sur le poste du visiteur? Dans ce cas, il suffit d'utiliser le menu du navigateur ("fichier" puis "enregistrer sous ..." sous IE ou firefox)
Sur le serveur? Alors là soit tu crais une variable contenant tous le code html que t'écrira ensuite dans un fichier et que t'envéra aussi au navigateur, soit t'utilises les tampon de php pour ne rien envoyer au navigateur (en sachant que si le tampon déborde, le début sera quand même envoyé et tu ne l'auras plus à disposition pour la sauvegarde dans un fichier) et avoir (avec de la chance) l'intégralité du code html dedans afin de l'y récupérer avant envoie pour le stocker dans un fichier.
La premiére méthode me semble être la meilleure même s'il faut faire attention à ne pas dépasser l'espace mémoire aloué au script sous peine d'avoir un message d'erreur et un arrêt prématuré du script. En tout cas, en gérant soit même l'envoie et la sauvegarde, on est sur de rien perdre.