PHP generates HTML static data for the entire website

Source: Internet
Author: User
I often see people asking on the internet how to make the entire dynamic website static. In fact, the implementation method is very simple .? Php // add ob_start (); // The following code to your start: // add ob_end_clean () to the end (), and output this page to a variable $ temp = ob_get_contents (); ob_end_clean (I often see someone asking on the internet how to make the entire dynamic website static. In fact, the implementation method is very simple.

// Add ob_start () to your start ();
Ob_start ();

// The following is your code
// Add ob_end_clean () to the end and output this page to a variable.
$ Temp = ob_get_contents ();
Ob_end_clean ();

// Write a file
$ Fp = fopen ('file name', 'w ');
Fwrite ($ fp, $ temp) or die ('file writing error ');
?>
 


This is only the most basic method. it is not very practical, because the website needs to be updated and the HTML must be regenerated on a regular basis.

The following is my method:
 

If (file_exists ("xxx.html "))
{
$ Time = time ();

// If the file modification time is half an hour different from the current time, direct it to the html file. otherwise, generate a new html file.
If ($ time-filemtime ("xxx.html") <30*60)
{
Header ("Location: xxx.html ");
}
}
// Add ob_start () to your start ();
Ob_start ();

// Page details
// Add ob_end_clean () to the end and output this page to a variable.
$ Temp = ob_get_contents ();
Ob_end_clean ();

// Write a file
$ Fp = fopen('xxx.html ', 'w ');
Fwrite ($ fp, $ temp) or die ('file writing error ');

// Redirect
Header ("Location: xxx.html ");



The following describes some functions used:
1. Flush: refresh the buffer content and output it.
Function format: flush ()
Note: This function is frequently used and highly efficient.
2. ob_start: Open the output buffer.
Function format: void ob_start (void)
Note: When the buffer zone is activated, all non-file header information from the PHP program is not sent, but stored in the internal buffer zone. To output the buffer content, you can use ob_end_flush () or flush () to output the buffer content.
3. ob_get_contents: returns the content of the internal buffer.
Usage: string ob_get_contents (void)
Note: This function returns the content in the current buffer. if the output buffer is not activated, FALSE is returned.
4. ob_get_length: return the length of the internal buffer.
Usage: int ob_get_length (void)
Note: This function returns the length of the current buffer. it is the same as ob_get_contents if the output buffer is not activated. Returns FALSE.
5. ob_end_flush: sends the content of the internal buffer to the browser and closes the output buffer.
Usage: void ob_end_flush (void)
Note: This function sends the content of the output buffer (if any ).
6. ob_end_clean: delete the content of the internal buffer and disable the internal buffer.
Usage: void ob_end_clean (void)
Note: This function will not output the content of the internal buffer but delete it!
7. ob_implicit_flush: enable or disable absolute refresh
Usage: void ob_implicit_flush ([int flag])
Note: Anyone who has used Perl knows the meaning of $ | = x. This string can enable/disable the buffer, while the ob_implicit_flush function is the same as that. the buffer is disabled by default, after the absolute output is enabled, each script output is directly sent to the browser, and you do not need to call flush ()

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.