之前研究帝國cms的審覈功能,不知道什麼原因,火車頭髮布文章到帝國cms,設置是未審覈,但是不一會又自動審覈了,總之麻煩!
爲了避免過多的浪費時間,於是就沒有去仔細研究!
最近又需要用到審覈功能,這下就頭疼了!
上千萬文章,火車頭髮布,發佈到待審覈很麻煩!
於是我研究一番,採用了另外一種思路!
我不用待審覈功能,但是卻能實現網站每天顯示最新文章!
思路解析
1.帝國cms的模版,我們在生成標籤的時候,設置一下發布時間!
我們從發佈時間下手,發佈時間小於當前時間,那麼就調用。
比如我設置一篇文章發佈時間是明天,那麼標籤就不調用這篇文章,需要到明天指定時間才調用!
附加SQL條件:newstime <= '.time().'

2.利用PHP修改帝國數據表裏面的發佈時間,爲了上千萬文章全部能設置完時間,我寫了兩個PHP!
第一個PHP負責讀取整表的文章,同時生成好發佈時間。
第二個PHP負責將設置數據庫裏面文章的定時發佈時間,每次修改100個!
這樣可以很有效率的完成時間的設定,並且不會給服務器造成大負擔。
第一個PHP代碼
🔒 隱藏內容:評論後查看
<?php
require('e/class/connect.php'); //引入數據庫配置文件和公共函數文件
require('e/class/db_sql.php'); //引入數據庫操作文件
$link=db_connect(); //連接MYSQL
$empire=new mysqlquery(); //聲明數據庫操作類
$sql=$empire->query("select id,title from {$dbtbpre}ecms_news"); //查詢新聞表最新10條記錄
$num = 10;
$i = 1;
$n = 1;
$s = 1;
$newstime = strtotime("2023-8-21 6:20:30");
while($r=$empire->fetch($sql)) //循環獲取查詢記錄
{
$br = '';
$time = $num;
if($num==1){
if($s==0){
$s = 1;
$n++;
}
$num = 10 + $n;
$br = "<hr style='color:red'>";
$s--;
$newstime+=86400;
}
echo"{$i}標題:".$r['title']."-----{$time}---{$newstime}---".date("Y-m-d H:i:s",$newstime)."<br>{$br}";
// echo"{$i}--".$r['id']."--{$time}|{$br}";
// echo $sqlUp = "UPDATE `phome_ecms_news` SET `newstime` = '{$newstime}' WHERE `id` = {$r['id']};";
$array[] = array($r['id'],$newstime);
$empire->query1($sqlUp);
$i++;
$num--;
}
file_put_contents("定時發佈.json", json_encode($array));
db_close(); //關閉MYSQL鏈接
$empire=null; //注消操作類變量
?>
第二個PHP代碼
🔒 隱藏內容:評論後查看
<?
$jsonFile = "定時發佈.json";
$array = json_decode(file_get_contents($jsonFile),true);
if(empty($array)){
die("已發佈完成");
}
function getSequentialElements(&$array, $quantity) {
// 檢查數組長度和需求數量
$arrayLength = count($array);
if ($arrayLength <= $quantity) {
$result = $array;
$array = array_slice($array, $arrayLength);
return $result; // 數組長度小於或等於需求數量,直接返回整個數組
}
// 從原數組中順序取出指定數量的元素,並將其從原數組中刪除
$result = array_slice($array, 0, $quantity);
$array = array_slice($array, $quantity);
return $result;
}
$randomElements = getSequentialElements($array, 100);
require('e/class/connect.php'); //引入數據庫配置文件和公共函數文件
require('e/class/db_sql.php'); //引入數據庫操作文件
$link=db_connect(); //連接MYSQL
$empire=new mysqlquery(); //聲明數據庫操作類
$n=1;
foreach($randomElements as $v){
$sql = "UPDATE `phome_ecms_news` SET `newstime` = '{$v[1]}' WHERE `id` = {$v[0]};";
if($empire->query($sql)){
echo "{$n}成功設置定時發佈,文章ID:$v[0],發佈時間:".date("Y-m-d H:i:s",$v[1])."<br>";
$n++;
}
}
file_put_contents($jsonFile,json_encode($array));
db_close(); //關閉MYSQL鏈接
$empire=null; //注消操作類變量
?>
<meta http-equiv="refresh" content="0;">