### [帝国cms实现用户访问页面自动生成html的方法](https://www.prosaas.cn/article/5136) **Published:** 2019-11-27T05:44:05 **Author:** 5201314 **Excerpt:** 本文实例讲述了帝国cms实现用户访问页面自动生成html的方法。分享给大家供大家参考。具体分析如下:原因:对于… ![](//zhiqipro.oss-cn-beijing.aliyuncs.com/2023/12/20231212123645211.gif) 本文实例讲述了帝国cms实现用户访问页面自动生成html的方法。分享给大家供大家参考。具体分析如下: 原因:对于服务器资源有限但是数据量非常庞大的网站来说,使用帝国cms在批量生成全部文件的时候速度比较慢,更改了一次模板,往往要更新很久. 思路:删除所有html->利用nginx匹配未生成的html->php生成html,如果nginx 检测html已经生成,则直接展示,不跳转到php. 实现代码如下: 代码如下: location /{ alias /home/web/xxx.com/; if (!-e $request\_filename) { rewrite /(.\*)/(.\*).html$ /chtml.php?classid=1&id=$2&ssid=$2&check=checkcode; } } 以上配置,用户访问不存在的html的时候会自动展示chtml.php里面的内容,网址不会跳转,相当于是在当前URL下. 推荐学习《帝国cms教程》 3.php生成: 文件1:chtml.php代码如下: 代码如下: 文件2修改: e/class/chtmlfun.php 找到ReSingleInfo方法,在下面之前: 代码如下: $sql=$empire->query("select \* from {$dbtbpre}ecms\_".$class\_r\[$classid\]\[tbname\]." where ".$add); 新增:如下代码: 代码如下: /\* 前台生成单个文件 2014-5-8 shanmao\*/ $s\_aid = (int)$\_GET\['ssid'\]; if($s\_aid>0){ $add="id=$s\_aid"; $classid=58;//你的栏目id } /\* 前台生成单个文件 \*/ 文件3修改:functions.php GetHtml 方法尾部新增一下代码,用于直接显示生成后的html: 代码如下: /\* 直接展示html 2014-5-8 \*/ $s\_aid = $\_GET\['ssid'\]; $s\_play = (int)$\_GET\['play'\]; $s\_check = $\_GET\['check'\]; if($s\_check=="checkcode"){ if($s\_aid && strstr($s\_aid,"\_play")){ echo file\_get\_contents($file\_p); }else{ echo file\_get\_contents($file); } } /\* 直接展示html 2014-5-8 \*/ 希望本文所述对大家的帝国cms建站有所帮助。 以上就是帝国cms实现用户访问页面自动生成html的方法的详细内容,更多请关注知企PROSAAS其它相关文章! **Categories:** 帝国CMS ---