How do you programmatically convert a dynamic PHP file into a static HTML file, that would obviously have all dynamic PHP-related values baked in as static HTML?
-
1Copy the output, the HTML source of the generated web page! Maybe you mean how to do this automatically at runtime?lorenzo-s– lorenzo-s2011-12-20 16:00:52 +00:00Commented Dec 20, 2011 at 16:00
-
Sounds like you are looking for caching information, check here: slideshare.net/anisniit/caching-newJim– Jim2011-12-20 16:02:34 +00:00Commented Dec 20, 2011 at 16:02
7 Answers
As the beginning of your script place this:
<?php
ob_start();
?>
At the very end of the script, place this:
<?php
$myStaticHtml = ob_get_clean();
// Now you have your static page in $myStaticHtml
?>
Output buffering reference here:
http://php.net/manual/en/book.outcontrol.php
http://www.php.net/manual/en/function.ob-start.php
http://www.php.net/manual/en/function.ob-end-clean.php
Comments
Somewhere on the top of your PHP file:
ob_start();
After all the processing:
$output = ob_get_clean();
file_put_contents('filename', $output);
And if you then also want to output it for that process (for instance if you want to write cache on runtime but also show that page to that user:
echo $output;
Comments
View the HTML source in a browser, and save that.
If you want to do this automatically, then use output buffering.
Comments
From the related posts:
<?php
job_start(); // your PHP / HTML code here
file_put_contents('where/to/save/generated.html', ob_get_clean());
?>
1 Comment
ob_start(); is needed too.