在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的。今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下。 经他讲解后,才知道其实生成静态HTML页面很简单。PHP提供了专门的函数来实现。 以下整理出方法(实现生成html这应该只是其中一种方法):
通过php的ob缓存来实现
代码如下: 1 <?php 2 header('Content-type:text/html; charset=utf-8'); 3 /** 4 ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里; 5 ob_get_contents():是读出缓冲区里的内容,下面有代码为例; 6 ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来 7 8 */ 9 if(file_exists('./index.html')) //静态index.html文件是否存在 10 { 11 $time = time(); //文件修改时间和现在时间相差的话,直接导向html文件,否则重新生成htm 12 13 if($time-filemtime('./index.html') < 60) 14 { 15 header('Location:./index.html'); 16 } 17 } 18 19 //开始处加入ob_start(); 20 ob_start(); //开启php的ob缓存,这些数据放到ob缓存中,没有开启ob缓存,然后放到程序缓存中 21 22 //动态部分内容 23 ?> 24 <html> 25 <head> 26 <meta charset="utf-8" /> 27 <title>Hello</title> 28 <style> 29 body{ background:black;color:white;font-size:20px;} 30 </style> 31 </head> 32 <body> 33 <p align="center">PHP生成HTML文件....</p> 34 </body> 35 </html> 36 <?php 37 //在结尾加入ob_end_clean(),并把本页输出到一个变量中 38 $htmlStr = ob_get_contents(); //获得缓存中的数据 39 ob_end_clean(); 40 41 //写入文件 42 $fp = fopen('./index.html', 'w'); 43 fwrite($fp, $htmlStr) or die('写文件错误'); 44 45 echo "生成HTML完成!";
|
2022-08-17
2022-11-06
2022-08-15
2022-08-18
2022-07-18
请发表评论