Before using some open-source CMS management system, it was very curious how the background generated HTML static files are implemented. Today and colleagues discussed the next, did not expect colleagues to do this kind of static page generation function, decisively to him to consult the next.
After he explained, just know that actually generate static HTML page is very simple. PHP provides a special function to implement.
Here's how to do it (implementing generating HTML should be just one way):
Implemented via the OB cache of PHP
Increase speed
1, through the PHP OB cache to achieve
Using the PHP OB cache for page statics
Modifying the php.ini configuration file
Output_buffering=off
1, Cache: Smarty Cache, thinkphp framework cache, PHP OB cache
(1) OB---cache, first the output of the data, buffer to a space
And then display the cached data for that space.
1,ob_start () First place the output data into the OB cache
2,ob_clean () empties the cache but does not close
3,ob_end_clean () empty the cache and also close the cache
4,ob_flush () outputs the OB cache data to the program cache
5,ob_end_flush () outputs the OB cache data to the program cache and closes the OB cache
(1) Program cache
That is, if the OB cache is not turned on, the data is cached in the program, and the Echo is finished, and the output is unified.
Browsers also have caches:
The browser first save data, and so on to a certain amount (ie 500 MB) when the output
The code is as follows:
1<?PHP2 Header(' content-type:text/html; Charset=utf-8 ');3 /**4 Ob_start (): is to open the buffer, is to put the static file you need to generate the contents of the cache here;5 ob_get_contents (): is to read out the contents of the buffer, the following code for example;6 Ob_end_clean (): This is more important, only after using this function, the contents of the buffer will be read out7 8 */9 if(file_exists('./index.html '))//whether a static index.html file existsTen { One $time= Time();//file modification time and current time difference, direct navigation to HTML file, otherwise regenerate HTM A - if($time-Filemtime('./index.html ') < 60) - { the Header(' location:./index.html '); - } - } - + //add Ob_start () at the beginning; - Ob_start();//turns on the OB cache for PHP, which is placed in the OB cache without opening the OB cache and then in the program cache + A //Dynamic part content at?> - - -<meta charset= "Utf-8"/> -<title>Hello</title> -<style> inbody{background:black;color:white;font-size:20px;} -</style> to +<body> -<p align= "center" >php Generate HTML file ....</p> the</body> * $<?PHPPanax Notoginseng //add Ob_end_clean () at the end and output this page to a variable - $htmlStr=ob_get_contents();//get the data in the cache the Ob_end_clean(); + A //Write File the $fp=fopen('./index.html ', ' W '); + fwrite($fp,$htmlStr) or die(' Write file error '); - $ Echo"Generate HTML complete!";
Generating static pages using the OB function of PHP