扒开老师双腿猛进入白浆小说,熟女人妻私密按摩内射,成人A片激情免费视频,亚洲欧洲AV无码区玉蒲区

當(dāng)前位置: > 學(xué)習(xí)>正文

帝國(guó)cms 怎么修改字段內(nèi)容存文本,內(nèi)容存數(shù)據(jù)庫(kù)”改為“內(nèi)容存文本”的方案

2025-08-27 學(xué)習(xí)

在帝國(guó)CMS文章模型(news)的newstext字段默認(rèn)是“內(nèi)容存文本”的模式,但是有時(shí)候我們剛建站時(shí)出于某種原因把這個(gè)默認(rèn)模式修改成了“內(nèi)容存數(shù)據(jù)庫(kù)”了。網(wǎng)站運(yùn)行一段時(shí)間后,我們發(fā)現(xiàn)數(shù)據(jù)庫(kù)越來(lái)越大,這時(shí)候想把它重新修改為“內(nèi)容存文本”的模式,可以有效為數(shù)據(jù)庫(kù)減負(fù)。但因?yàn)楸砝镆呀?jīng)存在了數(shù)據(jù),且官方后臺(tái)不允許將數(shù)據(jù)類(lèi)型直接修改成“內(nèi)容存文本”的模式,此時(shí)可以通過(guò)下面的手動(dòng)方案來(lái)修改。

第一步,先備份數(shù)據(jù)庫(kù)。然后,登錄帝國(guó)CMS后臺(tái),“系統(tǒng)”—>“數(shù)據(jù)表與系統(tǒng)模型”—>管理數(shù)據(jù)表—>“新聞系統(tǒng)數(shù)據(jù)表  ( phome_ecms_news )”—>管理字段,先將字段newstext的字段名修改為:newstext2 。

第二步,在管理字段里,新增一個(gè)全新字段:newstext,注意將它的模型設(shè)置為:內(nèi)容存文本,其他選項(xiàng)參考之前的newstext2。

第三步,將下面的PHP代碼上傳到網(wǎng)站根目錄運(yùn)行。注意修改一下代碼中的參數(shù)。特別是,我網(wǎng)站原來(lái)的文章內(nèi)容存在副表,如果你不是存副表,還需要修改一下代碼里的SQL。

<?php
//程序名稱(chēng):將帝國(guó)CMS從內(nèi)容存數(shù)據(jù)庫(kù)改為:內(nèi)容存文本

//程序必須放在帝國(guó)CMS的網(wǎng)站根目錄執(zhí)行。

$password=trim($_GET["password"]);
if($password!="hyywx@dzh"){
    echo "運(yùn)行密碼錯(cuò)誤。";exit();
}

set_time_limit(0); //執(zhí)行時(shí)間為無(wú)限制

$db_servername ='localhost';
$db_name='hyywx';            //數(shù)據(jù)庫(kù)名
$db_username ='root';    //數(shù)據(jù)庫(kù)用戶(hù)名
$db_password ='123456';    //數(shù)據(jù)庫(kù)密碼
//使用PDO連接數(shù)據(jù)庫(kù)
$dsn = "mysql:host=".$db_servername.";dbname=".$db_name.";charset=UTF8";
try {
    $conn = new PDO($dsn, $db_username, $db_password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//    echo "數(shù)據(jù)庫(kù)連接成功!";
} catch(PDOException $e) {
    echo "數(shù)據(jù)庫(kù)連接失敗:" . $e->getMessage();
   }

//使用PDO執(zhí)行查詢(xún)的示例:
//   $stmt = $conn->query("SELECT * FROM tablename");
//   while ($row = $stmt->fetch()) {
//       echo $row["column1"] . "" . $row["column2"];
//   }

// 關(guān)閉數(shù)據(jù)庫(kù)連接
//$conn = null;

$news_table="phome_ecms_news";//文章主表
$news_table2="phome_ecms_news_data_1";//文章副表
$directory="d/txt/";//保存的目錄
$limit_num=50;//每次執(zhí)行多少個(gè)
$all_count=82309;//總數(shù)
$cur_num=$_GET["cur_num"];//當(dāng)前執(zhí)行到的行數(shù)
if(!$cur_num){$cur_num=0;}

//B.newstext2為原存內(nèi)容的字段,A.newstext為現(xiàn)在保存文本內(nèi)容(文件URL)的字段。需要先去帝國(guó)CMS后臺(tái)設(shè)置好對(duì)應(yīng)的模型字段
$results = $conn->query("SELECT A.id,A.classid,A.newstime,A.title,A.newstext,B.newstext2 FROM ".$news_table." A LEFT JOIN ".$news_table2." B ON A.id = B.id WHERE A.newstext = '' order by A.id asc LIMIT ".$cur_num.",".$limit_num);
         foreach ($results as $news) {        
            $newstime=$news['newstime'];
            $year=date("Y",$newstime);//發(fā)布時(shí)間:年
            $mdH=date("mdH",$newstime);//發(fā)布時(shí)間:月日時(shí)
            $directory2=$directory.$year."/".$mdH."/";
            $file_name=md5($news['classid'].$news['id']);            
            $newstext=$year."/".$mdH."/".$file_name;//待寫(xiě)入數(shù)據(jù)庫(kù)的文件路徑
            $content=$news['newstext2'];
            //var_dump($news);exit();
            if($content){
                $content="<? exit();?>".$content;
                $xieru_file=xieru_file($directory2,$file_name,$content);
                if($xieru_file){
                   $up=$conn->exec("update ".$news_table." set newstext='".$newstext."' where id=".$news['id']);
                }
            }        
            
        }

        if($cur_num>$all_count){
            echo "執(zhí)行完畢。";exit();
        }

        $cur_num=$cur_num+$limit_num;
        echo '<html><head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <script>window.location.href = "zhuanwenben.php?password='.$password.'&cur_num='.$cur_num.'";</script></head><body>            
            主表:'.$news_table.'<br>
            副表:'.$news_table2.'<br>
            總數(shù):'.$all_count.'條<br>
            每次執(zhí)行:'.$limit_num.'條<br>
            當(dāng)前執(zhí)行:從第<font color=red>'.$cur_num.'</font>條開(kāi)始<br>
            請(qǐng)不要關(guān)閉瀏覽器,系統(tǒng)自動(dòng)執(zhí)行下一步操作。
            </body></html>';






function xieru_file($directory,$file_name,$content){

$file = $directory . $file_name.'.php'; // 完整的文件路徑
 
// 檢查目錄是否存在
if (!is_dir($directory)) {
    // 如果不存在,則創(chuàng)建目錄
    mkdir($directory, 0755, true); // 第三個(gè)參數(shù)設(shè)置為true,以遞歸創(chuàng)建多級(jí)目錄
}
 
// 創(chuàng)建并寫(xiě)入文件
$bytesWritten = file_put_contents($file, $content);
// 檢查文件是否創(chuàng)建成功
if ($bytesWritten !== false) {
    //echo "文件創(chuàng)建成功,寫(xiě)入了 {$bytesWritten} 字節(jié)";
    return true;
} else {
    //echo "文件創(chuàng)建失敗";
    return false;
}

}

以上代碼運(yùn)行時(shí),因?yàn)檫\(yùn)行太快可能會(huì)看不到頁(yè)面任何顯示,但是你可以觀(guān)察URL,cur_num=50的數(shù)值變動(dòng)說(shuō)明在運(yùn)行中。

運(yùn)行完成后,此時(shí)已經(jīng)在newstext字段里插入了文本的URL了。可以自己使用數(shù)據(jù)庫(kù)管理軟件檢查一下。同時(shí)查看一下目錄:/d/txt/里是否有保存文章內(nèi)容的文件。(注意:如果第一次執(zhí)行程序時(shí)沒(méi)有把所有數(shù)據(jù)都轉(zhuǎn)換為文本文件,那么可以多執(zhí)行幾次程序,查看newstext字段是否都已經(jīng)存入了文本文件路徑。)

第四步,在確認(rèn)完成第三步并無(wú)誤后,登錄帝國(guó)CMS后臺(tái),同樣進(jìn)入:“系統(tǒng)”—>“數(shù)據(jù)表與系統(tǒng)模型”—>管理數(shù)據(jù)表—>“新聞系統(tǒng)數(shù)據(jù)表  ( phome_ecms_news )”—>管理系統(tǒng)模型。點(diǎn)擊“管理系統(tǒng)模型”后,在對(duì)應(yīng)的文章模型列表里點(diǎn)擊“修改”,將字段“newstext”右邊的框(參考字段“newstext2”)全部打上√。同時(shí)將字段“newstext2”的√全部去掉。把“自動(dòng)生成表單模板”也勾選上。

保存后,清空數(shù)據(jù)庫(kù)緩存,清空臨時(shí)文件等??梢蕴砑右黄恼聹y(cè)試一下。

至此完成。

本站其他內(nèi)容推薦

版權(quán)聲明: 本站僅提供信息存儲(chǔ)空間服務(wù),旨在傳遞更多信息,不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任,不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如因作品內(nèi)容、版權(quán)和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。