網站優化每次找代碼很麻煩,所以我這裏給備用一下,包括一些自定義的函數,其實大多數都是PHP代碼
第一類:高效率隨機調用代碼
<?php
$randnum=32; //隨機數量
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(1,100); //1爲最小ID,100000爲最大ID
$randdh=',';
}
?> [e:loop={1,32,0,0,"id in ($randids)"}]
<li>
<a href="<?=$bqsr['titleurl']?>" title="<?=$bqr['title']?>"><?=$bqr['title']?></a>
</li>
[/e:loop]
隨機高效率進化版:
這個版本的代碼,主要是爲了方便調取指定欄目的隨機文章,爲了方便模板的編輯,所以沒有封裝成函數
<?php
$file_cache = ECMS_PATH."news.json";
//緩存整個news表的數據
if(!file_exists($file_cache)){
//查詢分類
$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,每個欄目隨機分配文章id
foreach($file_arrs as $k=>$v){
$num = count($v)-1;
//增加變量
for ($rani=1; $rani<=30; $rani++){
$rand_id.= $v[mt_rand(0,$num)].",";
}
$rand_id = rtrim($rand_id,",");
$rand_data[] = $rand_id;
$rand_id = "";
$rani=1;
}
?>
調用方式:
<?php
$classid = $rand_data[$class_r[$GLOBALS[navclassid]][classid]-1];
?>
[ecmsinfo]0,20,32,0,3,14,0,"id in ($classid)"[/ecmsinfo]
高效率隨機調用tag
<?php
$num=$empire->num("select tagid from {$dbtbpre}enewstags");
$randnum=100;
$randids='';
$randdh='';
for($i=1;$i<=$randnum;$i++)
{
$randids.=$randdh.rand(1,$num);
$randdh=',';
}
?>
[e:loop={"select tagname,tagid from phome_enewstags where tagid in ($randids) limit $randnum",32,24,0}]
<a target="_blank" href="/tag/<?=$bqr['tagid']?>/" title="<?=$bqr['tagname']?>"><?=$bqr['tagname']?></a> |
[/e:loop]
隨機調用tag,其實這種可以改一改,隨機調用所有表的信息,具體可以自行修改