最新公告
  • 欢迎您光临站长源码网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 帝国cms400万文章首页高效率调用代码

    正文概述 管理员   2024-04-11   142

    由于我服务器配 置比较差,所以利用sq l的rand()来随机肯定不行,太慢了,所以我转换思路,先建张表,字段分两个,一个是文 章id一个栏目id,再通过这个表来进行区域性随机,这样就可以把随机高效率实现了,但是这样有个问题,用sq l不靠谱,所以我写了一个PHP代码,经过测试,首页能在两秒内加载出来,但是老是随机不好,所以我又用了我的缓存插 件来对页面进行固定….这都是后事了

    <?php
    $file_cache = "./news.json";
    //缓存整个news表的数据
    if(!file_exists($file_cache) || time()-filemtime($file_cache)>86400){
        //查询分类
        $hm_class=$empire->query("select classid from {$dbtbpre}enewsclass");   
        while($hm_r=$empire->fetch($hm_class))
        {
            //查询分类下面的所有id
            $hm_news=$empire->query("SELECT id FROM `{$dbtbpre}ecms_news` WHERE `classid` = {$hm_r[classid]}");   
            while($hm_nr=$empire->fetch($hm_news))
            {
                $news_data[$hm_r['classid']][] = $hm_nr[id];
            }
        }
        file_put_contents($file_cache,json_encode($news_data));
    }
    //获取缓存数据表
    $file_arrs = json_decode(file_get_contents($file_cache),true);
    //根据数据表获取id
    foreach($file_arrs as $k=>$v){
        //增加变量
        for ($rani=1; $rani<=30; $rani++){
            $rand_id.= $v[mt_rand(0,count($v)-1)].",";    
        }
        $rand_id = rtrim($rand_id,",");
        $rand_data[] = $rand_id;
        $rand_id = "";
        $rani=1;
    }
    ?>

    写了两天,想来想去,最后测试了很久,才写成这样,如果服务器配 置还是太小了,可以尝试将缓存文件给切分来调用,当然,这就需要你们再次而开了。
    代码使用,先在首页模板最上面把PHP代码放上去,接下来就可以直接万能标签调用了

    [ecmsinfo]1,20,32,1,0,13,0,"id in ($rand_data[0])"[/ecmsinfo]
    [ecmsinfo]2,20,32,1,0,13,0,"id in ($rand_data[1])"[/ecmsinfo]
    [ecmsinfo]3,20,32,1,0,13,0,"id in ($rand_data[2])"[/ecmsinfo]

    比如这样调用,不懂PHP的,就先了解一下PHP语法先。可以找我改进代码哦!


    站长源码网 » 帝国cms400万文章首页高效率调用代码

    发表评论

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    支付宝支付
    微信支付
    余额支付
    ×
    微信扫码支付 0 元