+ -
当前位置:首页 → 问答吧 → PHP实现静态发布的方法浅谈

PHP实现静态发布的方法浅谈

时间:2007-09-30

来源:互联网

PHP实现静态发布的方法浅谈
林超旗--欢迎与大家一起学习


如今很多网站都是静态发布的,PHP当然也可以方便的实现静态发布喽,具体的实现方法很多,下面我就说说我会的两种方法。
方法一:ob_get_contents()
这是一种很方便的方法,也是很常用的方法,实现原理是:首先打开缓存,然后创建相应的静态页文件,写入缓存的内容,清空缓存。
示例:
复制PHP内容到剪贴板
PHP代码:

<?php
ob_strart();#打开缓冲区
$fn=date('ymdhis').rand(1000,9999).'html';//生成文件名
require("supply.php");#载入要生成静态页的文件,因为后台有ob_clen()所以在不会显示出来
$fs=fopen($fn,'w');#打开静态页文件
fwrite($fs,ob_get_contents());#生成静态文件
ob_clean();#清空缓存
?>

方法二:file_get_contents();
复制PHP内容到剪贴板
PHP代码:

<?php
$fn=date('ymdhis').rand(1000,9999).'html';
$url= 'http://'.$_SERVER['HTTP_HOST']."/";#注意
$content=file_get_contents($url);
$fs=fopen($fn,'w');
fwrite($fs,$content);
?>

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

<?php
$filemodel="supply.php"; 
$file=fopen($filemodel,"w+");
$temp=fread($file,filesize($filemodel));
$temp=str_replace("[title]",$title,$temp);
$temp=str_replace("[postTime]",$postTime,$temp);
$temp=str_replace("[content]",$content,$temp);
?>

该方法适用于很简单的页面,如果supply.php中有使用引用文件比如require('header.php');那么header.php中的内容将会显示不出来
我仅仅是给出了最简单的方法,在实际应用中,您可以写一个生成静态页的类,在类中加入相应的异常处理,该文件仅仅给出一个示例。

[ 本帖最后由 forest 于 2007-11-8 10:35 编辑 ]

作者: lin_chaoqi   发布时间: 2007-09-30

好,支持,谁再加个生成静态页的类就完美无缺了.

作者: chyoqin   发布时间: 2007-09-30

静态页太耗硬盘了.

作者: londit.cn   发布时间: 2007-11-08

帮你代码高亮显示了!~~

作者: forest   发布时间: 2007-11-08

不错,学习了

作者: sanler   发布时间: 2007-11-12

引用:
原帖由 londit.cn 于 2007-11-8 10:32 发表
静态页太耗硬盘了.
现在硬盘便宜...

作者: szy_session1987   发布时间: 2007-11-12

  又是这个.能不能详细讲解下生静态的数据库结构设计.这个才是正道.

作者: 逆雪寒   发布时间: 2007-11-12

LS发牢骚

作者: muqiao   发布时间: 2007-11-12

非常好的学习资料

作者: adleyliu   发布时间: 2007-11-12