下载鸥 > 网站下载 > 开发教程 > 帝国CMS

帝国CMS怎样开发用户访问页面后自动生成html?

392 2021-04-22 23:26:56

收藏
帝国cms程序虽然已经效率很高,但如果数据量较大,如超过20万,那么不管模板如何优化,生成时间都会比较长。此时,我们就可以考虑静态+伪静态结合的方式做站内建设。例如,默认伪静态,有人访问后就生成静态页面。

帝国CMS怎样开发用户访问页面后自动生成html?

实现思路

1、删除生成的全部静态html页面
2、nginx匹配未生成的html
3、生成html
4、如果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下.
 

php生成

文件1:
/e/chtml.php

代码如下:
<?php 
$check= stripslashes($_GET['check']);  
require('./class/connect.php'); //引入数据库配置文件和公共函数文件 
require('./class/db_sql.php'); //引入数据库操作文件 
require("./class/functions.php"); 
require("./class/t_functions.php"); 
require("./data/dbcache/class.php"); 
require("./data/dbcache/MemberLevel.php"); 
require('./class/chtmlfun.php'); 
$link=db_connect(); //连接MYSQL 
$empire=new mysqlquery(); //声明数据库操作类  
if($check=="checkcode"){//checkcode 对应nginx配置的 checkcode ReSingleInfo('userid','username');//你的帝国后台 id 和 用户名 }  
db_close(); //关闭MYSQL链接 $empire=null; //注消操作类变量 
?>

文件2修改:
/e/class/chtmlfun.php
 
找到ReSingleInfo方法,找到下方源码:
$sql=$empire->query("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add);

新增如下代码:
$s_aid= (int)$_GET['ssid']; 
if($s_aid>0){ 
    $add="id=$s_aid"; 
    $classid=58;//你的栏目id 
}

文件3修改:
/e/class/functions.php 

搜索关键词:GetHtml 

尾部新增以下代码,用于直接显示生成后的html:
$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); 
    } 
}

这样,我们就实现了帝国cms访问时自动生成html页面,下一个访客访问到该页面时,展示的就是静态页面了。

本文地址:https://xzo.com.cn/develop/empire/838.html

有帮助,很赞!

信息来源:下载鸥
导出教程 下载word版教程
发表评论 共有条评论
关于帝国CMS


帝国cms是一款功能极为强大的cms程序,性能强悍、安全性高,可轻松支持10万数据,高级开发人员可制作出能容纳千万数据量的网站,是国内最出色的开源cms程序之一,推荐企业用户使用

当前最新版本为7.5,8.0版本即将上线,新版本的核心优化点在于多终端的适配。

推荐帝国CMS开发教程
帝国CMS提示登录超时,怎样删除或设置超时时间?
帝国CMS提示登录超时,怎样删除或设置超时时间?

帝国CMS后台一段时间不用就会提示登录超时,总是要频繁登录很烦,要怎样取消登...

16 606
忘记帝国CMS账号/密码/认证码如何重置
忘记帝国CMS账号/密码/认证码如何重置

部分用户一段时间没有登录后台,或是换了机器忘记了帝国CMS账号/密码/认证码,...

16 1098
帝国cms取消用户邮箱必填(注册/修改资料/管理员编辑资料)
帝国cms取消用户邮箱必填(注册/修改资料/管理员编辑资料)

网上关于取消会员邮箱必填的教程很多,但大都不完整。今天放出完整版本,确保全...

12 717
帝国cm后台权限检测判断代码大全
帝国cm后台权限检测判断代码大全

帝国cm后台权限检测判断代码大全,包括信息管理、栏目管理、模板管理、用户面...

13 703
帝国CMS图片集怎样做分页生成?
帝国CMS图片集怎样做分页生成?

帝国cms图片集做轮播展示非常好用,但无法支持分页。分页作为网站跳出、广告...

1 491
帝国cms无法加载360站长平台的js推送代码怎么办?
帝国cms无法加载360站长平台的js推送代码怎么办?

如果直接在帝国cms模板中插入360推送代码,会发现在插入360推送代码后,无法正...

7 632
帝国cms面包屑导航[!–newsnav–]修改方式大合集
帝国cms面包屑导航[!–newsnav–]修改方式大合集

本文介绍的帝国cms面包屑导航newsnav修改为newsnav完整的修改攻略,包括标签...

11 2155
帝国cms怎样去掉面包屑导航里的隐藏栏目
帝国cms怎样去掉面包屑导航里的隐藏栏目

帝国cms有隐藏栏目的功能,但隐藏栏目的文章如果展示,面包屑导航里会带上被隐...

1 642
推荐插件
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 550
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 426
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1263
帝国cms网站会员登录与退出历史记录日志插件
帝国cms网站会员登录与退出历史记录日志插件

帝国cms默认只有上次登录时间与ip,没有一个记录清单,所以今天,我们分享这个帝...

0 388
帝国cms批量添加后台用户插件
帝国cms批量添加后台用户插件

使用帝国cms的企业用户、新闻资讯类站点的用户很多,此类站点很多时候需要有...

0 757
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 385
帝国cms百度AI图像去雾api接口对接插件
帝国cms百度AI图像去雾api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像去雾的功能。经过实际...

0 445
帝国cms百度文字识别ocr接口对接插件
帝国cms百度文字识别ocr接口对接插件

许多网站会做一些小功能小插件给客户使用以增强用户黏性,比如图片转文字,这种...

0 448
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入