Jake Wilson
Jake Wilson

Reputation: 91183

PHP - How to programmatically bake out static HTML file?

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?

Upvotes: 2

Views: 2743

Answers (7)

macjohn
macjohn

Reputation: 1793

You can also do it with wget

For example:

$ wget -rp -nH --cut-dirs=1 -e robots=off http://www.domain.com/

Upvotes: 1

pgl
pgl

Reputation: 7981

View the HTML source in a browser, and save that.

If you want to do this automatically, then use output buffering.

Upvotes: 1

stefandoorn
stefandoorn

Reputation: 1032

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;

Upvotes: 2

Prisoner
Prisoner

Reputation: 27618

<?php

ob_start(); // start output buffering

echo "your html and other PHP"; // write to output buffer

file_put_contents("file.html", ob_get_contents()); // write the contents of the buffer to file

ob_end_clean(); // clear the buffer

Upvotes: 1

lorenzo-s
lorenzo-s

Reputation: 17010

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

Upvotes: 10

user408041
user408041

Reputation: 1114

From the related posts:

<?php  
  job_start();  // your PHP / HTML code here  
  file_put_contents('where/to/save/generated.html', ob_get_clean());  
?> 

Upvotes: 0

lvil
lvil

Reputation: 4326

The easiest way is to open the page and to copy "view source"
You can also use
php function $homepage = file_get_contents('http://www.example.com/');

and save it in a file

Upvotes: 0

Related Questions