PHP实现页面静态化深入讲授(2)

PHP模板实现静态化很是利便,好比安装和利用PHP Smarty实现网站静态化。
在利用Smarty的环境下,也可以实现页面静态化。下面先简朴说一下利用Smarty时凡是动态读取的做法。 
一般分这几步:
1、通过URL通报一个参数(ID);
2、然后按照此ID查询数据库;
3、取得数据后按照需要修改显示内容;
4、assign需要显示的数据;
5、display模板文件。
Smarty静态化进程只需要在上述进程中添加两个步调。
第一:在1之前利用 ob_start() 打开缓冲区。
第二:在5之后利用 ob_get_contents() 获取内存未输出内容,然后利用fwrite()将内容写入方针html文件。
按照上述描写,此进程是在网站前台实现的,而内容打点(添加、修改、删除)凡是是在靠山举办,为了能有效操作上述进程,可以利用一点小手段,那就是Header()。详细进程是这样的:在添加、修改措施完成之后,利用Header() 跳到前台读取,这样可以实现页面HTML化,然后在生成html后再跳回靠山打点侧,而这两个跳转进程是不行见的。

要领2:利用PHP文件读写成果生成静态页面

$out1 = "<html><head><title>PHP网站静态化教程</title></head><body>接待会见剧本之家,本文主要先容PHP网站页面静态化的要领</body></html>"; $fp = fopen("leapsoulcn.html","w"); if(!$fp) { echo "System Error"; exit(); } else { fwrite($fp,$out1); fclose($fp); echo "Success"; }

要领3:利用PHP输出节制函数(Output Control)/ob缓存机制生成静态页面

输出节制函数(Output Control)也就是利用和节制缓存来生成静态HTML页面,也会利用到PHP文件读写函数。
好比某个商品的动态详情页地点是: ?goods.php?gid=112
那么这里我们按照这个地点读取一次这个详情页的内容,然后生存为静态页,下次有人会见这个商品详情页动态地点时,我们可以直接把已生成好的对应静态内容文件输出出来。

PHP生成静态页面实例代码 1

ob_start(); echo "<html>". "<head>". "<title>PHP网站静态化教程</title>". "</head>". "<body>接待会见剧本之家,本文主要先容PHP网站页面静态化的要领</body>". "</html>"; $out1 = ob_get_contents(); ob_end_clean(); $fp = fopen("leapsoulcn.html","w"); if(!$fp) { echo "System Error"; exit(); } else { fwrite($fp,$out1); fclose($fp); echo "Success"; }

PHP生成静态页面实例代码 2

$gid = $_GET['gid']+0;//商品id $goods_statis_file = "goods_file_".$gid.".html";//对应静态页文件 $expr = 3600*24*10;//静态文件有效期,十天 if(file_exists($goods_statis_file)){ $file_ctime =filectime($goods_statis_file);//文件建设时间 if($file_ctime+$expr-->time()){//假如没逾期 echo file_get_contents($goods_statis_file);//输出静态文件内容 exit; }else{//假如已逾期 unlink($goods_statis_file);//删除逾期的静态页文件 ob_start(); //从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板 $content = ob_get_contents();//把详情页内容赋值给$content变量 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 ob_end_flush();//输出商品详情页信息 } }else{ ob_start(); //从数据库读取数据,并赋值给相关变量 //include ("xxx.html");//加载对应的商品详情页模板 $content = ob_get_contents();//把详情页内容赋值给$content变量 file_put_contents($goods_statis_file,$content);//写入内容到对应静态文件中 ob_end_flush();//输出商品详情页信息 }

我们知道利用PHP举办网站开拓,一般执行功效直接输出到游览器,为了利用PHP生成静态页面,就需要利用输出节制函数节制缓存区,以便获取缓存区的内容,然后再输出到静态HTML页面文件中以实现网站静态化。

PHP生成静态页面的思路为:首先开启缓存,然后输出了HTML内容(你也可以通过include将HTML内容以文件形式包括进来),之后获取缓存中的内容,清空缓存后通过PHP文件读写函数将缓存内容写入到静态HTML页面文件中。
得到输出的缓存内容以生成静态HTML页面的进程需要利用三个函数:ob_start()、ob_get_contents()、ob_end_clean()。

常识点:
1、ob_start函数一般主要是用来开启缓存,留意利用ob_start之前不能有任何输出,如空格、字符等。
2、ob_get_contents函数主要用来获取缓存中的内容以字符串形式返回,留意此函数必需在ob_end_clean函数之前挪用,不然获取不到缓存内容。
3、ob_end_clean函数主要是清空缓存中的内容并封锁缓存,乐成则返回True,失败则返回False
要领4:利用nosql从内存中读取内容(其实这个已经不算静态化了而是缓存);
以memcache为例:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsdpwy.html