1、在执行之前,要在根目录下的程序入口文件index.php中进行如下配置:
//生成静态页面的文件位置define('HTML_PATH', './HTML/');

2、// 生成静态html
function create_html($id,$title,$content){
ob_start();//开启静态缓存
$category_id = M("article")->where("id = $id")->getfield("category_id");
$nid = M("article")->field("id")->where("id > $id and category_id = $category_id")->getfield("id");
$pid = M("article")->field("id")->where("id < $id and category_id = $category_id")->order("id desc")->getfield("id");
$server = "http://".$_SERVER['SERVER_NAME']."/";
if($pid>0){
$particle = M("article")->field("id,title,url")->where("id = '$pid'")->find();
if ($particle) {
$temples['particle'] = "上一篇:<a href='".$server.$particle['url']."' title='".$particle['title']."'>".$particle['title']."</a>";
}else{
$temples['particle'] = "上一篇:没有了";
}
}else{
$temples['particle'] = "上一篇:没有了";
}
if($nid>0){
$narticle = M("article")->field("id,title,url")->where("id = '$nid'")->find();
if ($narticle) {
$temples['narticle'] = "下一篇:<a href='".$server.$narticle['url']."' title='".$narticle['title']."'>".$narticle['title']."</a>";
}else{
$temples['narticle'] = "下一篇:没有了";
}
}else{
$temples['narticle'] = "下一篇:没有了";
}
// 判断数据库中是否有这个静态文件,如果有更新url,如果没有增加html
$article = M("article")->field("id,title,url")->where("id = '$id'")->find();
$temples['title'] = $title;
$temples['content'] = $content;
require("new_file.html");//引用模板文件
$path = M("category")->where("id = $category_id")->getfield("url")."/".date("Ymd");
if (!is_dir($path)) mkdir($path,0777,true); // 如果不存在则创建
$url = $path."/".$id.".html";
$result = file_put_contents($url, ob_get_clean()); //ob_get_clean()获取当前缓冲区内容并清除当前的输出缓冲
$up_url = M("article")->where("id = '$id'")->setfield("url",$url);
return $result;
}

3、//新闻列表
CREATE TABLE `news_article` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`category_id` int(11) NOT NULL COMMENT '新闻栏目id',
`publisher` int(11) NOT NULL COMMENT '发布者',
`title` varchar(50) NOT NULL COMMENT '文章标题',
`content` text NOT NULL COMMENT '新闻内容',
`keywords` varchar(255) NOT NULL COMMENT '关键字',
`flag` varchar(11) NOT NULL COMMENT '属性',
`description` varchar(255) NOT NULL COMMENT '描述',
`img` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL COMMENT '静态url',
`addtime` varchar(20) NOT NULL COMMENT '添加时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=51 DEFAULT CHARSET=utf8 COMMENT='新闻表';

4、//新闻栏目表
CREATE TABLE `news_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`pid` int(11) NOT NULL,
`name` varchar(20) NOT NULL COMMENT '类别名称',
`alias` varchar(20) NOT NULL COMMENT '别名',
`sort` int(11) NOT NULL COMMENT '排序',
`url` varchar(255) NOT NULL,
`lv` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8 COMMENT='新闻栏目表';

5、这是一个比较简单的生成静态页面的方法,您只需要掌握ob函数,灵活运用即可。这里我只是根据我的需求封装了一个生成静态页面的函数,您可根据自己网站需求自行更改
