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函数,灵活运用即可。这里我只是根据我的需求封装了一个生成静态页面的函数,您可根据自己网站需求自行更改