优站互动 - 专业精品源码下载论坛,优秀的网站模板分享社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 53|回复: 0

帝国cms实现用户访问页面自动生成html的方法

[复制链接]
  • TA的每日心情
    擦汗
    2016-7-1 10:43
  • 签到天数: 1 天

    [LV.1]初来乍到

    244

    主题

    248

    帖子

    4万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    42713
    发表于 2016-7-2 10:30:14 | 显示全部楼层 |阅读模式
    本文实例讲述了帝国cms实现用户访问页面自动生成html的方法。

    分享给大家供大家参考。具体分析如下:
    原因: 对于服务器资源有限但是数据量非常庞大的网站来说,使用帝国cms在批量生成全部文件的时候速度比较慢,更改了一次模板,往往要更新很久.
    思路:删除所有html->利用nginx匹配未生成的html->php生成html,如果nginx 检测html已经生成,则直接展示,不跳转到php.

    实现代码如下:
    1. <font face="微软雅黑">location /{
    2. alias /home/web/xxx.com/;
    3. if (!-e $request_filename) {
    4. rewrite /(.*)/(.*).html$ /chtml.php?classid=1&id=$2&ssid=$2&check=checkcode;
    5. }
    6. }
    7. </font>
    复制代码
    以上配置,用户访问不存在的html的时候会自动展示chtml.php里面的内容,网址不会跳转,相当于是在当前URL下.
    3.php生成:
    文件1:chtml.php代码如下:
    1. <font face="微软雅黑"><?php
    2. $check= stripslashes($_GET['check']);

    3. require('./class/connect.php'); //引入数据库配置文件和公共函数文件
    4. require('./class/db_sql.php'); //引入数据库操作文件
    5. require("./class/functions.php");
    6. require("./class/t_functions.php");
    7. require("./data/dbcache/class.php");
    8. require("./data/dbcache/MemberLevel.php");
    9. require('./class/chtmlfun.php');
    10. $link=db_connect(); //连接MYSQL
    11. $empire=new mysqlquery(); //声明数据库操作类

    12. if($check=="checkcode"){//checkcode 对应nginx配置的 checkcode
    13. ReSingleInfo('userid','username');//你的帝国后台 id 和 用户名
    14. }

    15. db_close(); //关闭MYSQL链接
    16. $empire=null; //注消操作类变量
    17. ?>
    18. </font>
    复制代码
    文件2修改:
    e/class/chtmlfun.php
    找到ReSingleInfo方法,在下面之前:
    1. <font face="微软雅黑">$sql=$empire->query("select * from {$dbtbpre}ecms_".$class_r[$classid][tbname]." where ".$add);</font>
    复制代码
    新增:如下代码:
    1. <font face="微软雅黑">/* 前台生成单个文件 2014-5-8 shanmao*/
    2. $s_aid = (int)$_GET['ssid'];
    3. if($s_aid>0){
    4. $add="id=$s_aid";
    5. $classid=58;//你的栏目id
    6. }
    7. /* 前台生成单个文件 */
    8. </font>
    复制代码
    文件3修改:functions.php GetHtml 方法尾部新增一下代码,用于直接显示生成后的html:
    1. <font face="微软雅黑">/* 直接展示html 2014-5-8 */
    2. $s_aid = $_GET['ssid'];
    3. $s_play = (int)$_GET['play'];
    4. $s_check = $_GET['check'];
    5. if($s_check=="checkcode"){
    6. if($s_aid && strstr($s_aid,"_play")){
    7. echo file_get_contents($file_p);
    8. }else{
    9. echo file_get_contents($file);
    10. }
    11. }
    12. /* 直接展示html 2014-5-8 */
    13. </font>
    复制代码
    希望本文所述对大家的帝国cms建站有所帮助。

    快捷导航:√IDC促销信息 | √源码求购/出售 | √域名求购/出售 | √友情链接交换 | √刷优豆专区(限荣誉会员) | √自助开通荣誉会员
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    回帖奖励

    [详情]

  • * 每天自己主题被回复3次可获得额外2金钱奖励。
  • * 每天回复他人主题5次可获得额外3贡献的奖励。
  • * 奖励每天都可领取,一定要多参与论坛讨论哦。
  • * 同一主题的重复回复不计。
  • QQ|小黑屋|免责声明|优站社区  |网站地图  

    GMT+8, 2017-11-25 13:44 , Processed in 1.151295 second(s), 39 queries .

    Powered by Discuz! X3.2 Licensed

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表