加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP动态页生成静态页的3种常用方法

发布时间:2020-12-12 20:28:56 所属栏目:PHP教程 来源:网络整理
导读:生成静态页的页面非常的简单就是定义好模板与模板标题,之后利用str_replace进行替换了,是最常用的方法,另一种是利用ob_get_contents输出获得然后生成html,还有一种不怎么推荐的是使用file_get_contents直接执行访问远程文件然后进行保存,性能极差。 具体

生成静态页的页面非常的简单就是定义好模板与模板标题,之后利用str_replace进行替换了,是最常用的方法,另一种是利用ob_get_contents输出获得然后生成html,还有一种不怎么推荐的是使用file_get_contents直接执行访问远程文件然后进行保存,性能极差。

具体方法简单说明如下: 1.使用文件函数得到静态页面的模板字符串,然后用str_replace函数将需要替换的东西替换了再写入到新的文件中。 2. 利用PHP的输出控制函数(Output Control)得到静态页面字符串,再写入到新的文件中。

代码如下:

方法一:ob_get_contents()

这是一种很方便的方法,也是很常用的方法,实现原理是:首先打开缓存,然后创建相应的静态页文件,写入缓存的内容,清空缓存。 示例:

代码如下:

方法二:file_get_contents();

代码如下:
下面对上面的注意进行一下解释,如果在些你使用的是仅仅是文件名,而不是URL那么您这个文件中如果有使用引用文件比如require ('header.php'); 那么header.php中的内容将会显示不出来。

方法三:str_replace()

代码如下:
该方法适用于很简单的页面,如果supply.php中有使用引用文件比如require ('header.php');那么header.php中的内容将会显示不出来 在实际应用中,您可以写一个生成静态页的类,
代码如下:
Url = $Url; $this->FileBag = $FileBag; $this->FileRoot = $FolderRoot; $this->FileName = $FolderName; $this->fileid = $fileid; Shtml::useFolder (); } /*************获取数据*******************/ public function loadcontent ($Folder) { ob_start(); require_once $this->Url; Shtml::writehtml ($Folder,ob_get_contents()); ob_clean(); } /********** 指定文件夹*****************/ public function useFolder () { if($this->FileBag==1) { $Folder=$this->FileName; } else if($this->FileBag==2) { $Folder=date('Ymd',time()); } else { exit($this->message1); } if(!is_dir($this->FileRoot.$Folder)){ mkdir($this->FileRoot.$Folder,0700);} Shtml::loadcontent ($Folder); } /********** 生成静态页面*****************/ public function writehtml ($Folder,$cache_value) { $file = fopen($this->FileRoot.$Folder.'/'.$this->fileid.'.html','w+'); fwrite($file,$cache_value); fclose($file); } } $fileid=2; $shtml = new Shtml("//www.52php.cn",1,"","cc",$fileid);
总结, 这个生成html程序代码没有生成分页了,如果文章很多它也只生成一篇文章,如果要改进我们需要进行比较大的改动了,在此就不介绍了。感兴趣的朋友可以动手测试改进一下,相信会有不小的收获!

希望本文所述对大家的PHP程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读