红穆笔记
首頁 程序筆記 易優cms 批量修改已經發布過的文章
程序筆記 易優cms

易優cms 批量修改已經發布過的文章

易优cms 批量修改已经发布过的文章

下載易優模板後,我習慣直接修改文章,所以便寫了一個php來批量修改易優的文章!

包括:

文章標題

文章內容

文章描述

文章關鍵詞(對標題進行分詞)

文章tag

文章發佈時間

等等!

發佈的文章來自帝國cms的自創api接口!

接口代碼很簡單

<?php
header("content-type:application/json;charset=utf-8");

// token驗證
$data['code'] = 404;
if($_GET['token'] !== $token = md5('自定義')){
    echo json_encode($data); 
    die;
} 

// 獲取文章的id,避免網站重複獲取數據
$file = 'id.txt';
$id = file_exists($file) ? file_get_contents($file) : 1;
// $id = 1;

// 連接數據庫,獲取數據
require('../class/connect.php');        //引入數據庫配置文件和公共函數文件
require('../class/db_sql.php');        //引入數據庫操作文件
$link=db_connect();                //連接MYSQL
$empire=new mysqlquery();        //聲明數據庫操作類
$r=$empire->fetch1("select * from {$dbtbpre}ecms_news where id={$id}");
if(!empty($r)){
    $r2=$empire->fetch1("select * from {$dbtbpre}ecms_news_data_{$r['stb']} where id={$r['id']}");
    if(!empty($r2)){
        $data['data']['id'] = $r['id'];
        $data['data']['title'] = $r['title'];
        $data['data']['content'] = $r2['newstext'];
        $data['code']   = 200;
    }
}

$id++;
file_put_contents($file,$id);
echo json_encode($data);

// 關閉數據庫
db_close();
$empire=null;

重點還是易優的修改代碼

🔒 隱藏內容:評論後查看

<?php
// token驗證
$token = md5('自定義');
// 獲取遠程數據
$api = get_api('https://遠程接口/e/api/juzi.php?token='.$token);
if(empty($api)){
    echo json_encode(['code'=>'404','message'=>'發佈失敗,獲取內容爲空!']);die();
}

// 匹配雙標題
$api2 = getBaiduSuggestion($api['data']['title']);
if(!empty($api2)){
    $api['data']['title'] .= "($api2)";
}
// 向文中插入圖片
$api['data']['content'] = insertImage($api['data']['content']);
// 關鍵詞
$api3 = get_api("http://py.4s5.cn/jieba?title=".urlencode($api['data']['title']));
$keywords = '';
if(!empty($api3)){
    $keywords = implode(',',$api3);
}

// 定義數據庫連接的參數
$database = require('../application/database.php');

// 創建數據庫連接
$connection = mysqli_connect($database['hostname'], $database['username'], $database['password'], $database['database']);

// 檢查連接是否成功
if (!$connection) {
    die("數據庫連接失敗: " . mysqli_connect_error());
}

// 設置字符集
mysqli_set_charset($connection, "utf8");
if(!file_exists('./lock.txt')){
    mysqli_query($connection, 'TRUNCATE `ey_taglist`;');
    mysqli_query($connection, "UPDATE `ey_archives` SET `update_time` = '0' ;");
    mysqli_query($connection, "TRUNCATE `ey_tagindex`");
    mysqli_query($connection, "TRUNCATE `UPDATE `ey_arctype` SET `seo_title` = '' ");
     mysqli_query($connection, "UPDATE `ey_archives` SET `update_time` = '0'; ");
    file_put_contents('./lock.txt',1);
}
        
// 構建文章數據數組
$sql = 'SELECT * FROM `ey_archives` where update_time < '.time().' limit 1 ';
$result = mysqli_query($connection, $sql);
if ($result) {
    $row = mysqli_fetch_assoc($result);
    if ($row) {
        // 修改標題、關鍵詞、縮略圖、描述、更新時間等字段的值
        $title = $api['data']['title'];
        $litpic = '/uploads/allimg/20241010/'.md5(mt_rand(1,106)).'.jpg';
        // $litpic = 'https://t.mwm.moe/fj/?'.(time() - mt_rand(1,9999));
        $description = mb_substr(strip_tags($api['data']['content']), 0, 160, 'utf-8');
        $updateTime = time()+86400; // 當前時間
        
        $sql = "UPDATE `ey_archives` SET `title` = '$title', `seo_keywords` = '$keywords', `litpic` = '$litpic', `seo_description` = '$description', `update_time` = '$updateTime',`add_time` = '$updateTime',`sort_order` = '$updateTime' WHERE `aid` = {$row['aid']}";
        
        if (mysqli_query($connection, $sql)) {
            echo "文章信息已成功修改【{$row['aid']}】<br>";
        } else {
            echo "修改文章信息失敗: " . mysqli_error($connection);
        }
        // 修改文章內容
        // 獲取要更新的正文內容
        $content = $api['data']['content'];
        $content = htmlspecialchars($content, ENT_QUOTES, 'UTF-8');
        
        // 更新文章的正文內容和更新時間
        $sql = "UPDATE `ey_article_content` SET `content` = '$content', `update_time` = '$updateTime' WHERE `aid` = {$row['aid']}";
        
        if (mysqli_query($connection, $sql)) {
            echo "文章正文已成功更新<br>";
        } else {
            echo "更新文章正文失敗: " . mysqli_error($connection);
        }
        //更新tag的關係
        if(!empty($api3)){
            foreach ($api3 as $v) {
                 // 查詢tag字段是否存在
                $sql = "SELECT * FROM ey_tagindex WHERE tag = '{$v}'";
                $result2 = $connection->query($sql);
                
                if ($result2->num_rows > 0) {
                    $rt = mysqli_fetch_assoc($result2);
                    // tag字段存在,執行其他操作
                    echo "tag字段【{$v}】已存在<br>";
                    $tagid = $rt['id'];
                } else {
                    // tag字段不存在,插入新記錄
                    $tag = $v; // 要插入的tag值
                
                    // 獲取當前時間
                    $addTime = time(); // 當前時間
                
                    // 插入新記錄
                    $insertSql = "INSERT INTO `ey_tagindex` (`id`, `tag`, `typeid`, `count`, `total`, `weekcc`, `monthcc`, `weekup`, `monthup`, `is_common`, `lang`, `add_time`, `update_time`) VALUES (NULL, '$tag', '{$row['typeid']}', '0', '2', '0', '0', '$addTime', '$addTime', '0', 'cn', '$addTime', '$addTime')";
                
                    if ($connection->query($insertSql) === TRUE) {
                        echo "新TAG已成功插入<br>";
                    } else {
                        echo "<br>插入新TAG失敗: " . $connection->error;
                    }
                    $tagid = mysqli_insert_id($connection);
                }
                // 插入tag關係
                $sql = "SELECT * FROM ey_taglist WHERE aid = '{$row['aid']}' and tag = '{$v}'";
                $result3 = $connection->query($sql);
                
                if ($result3->num_rows > 0) {
                    $rt = mysqli_fetch_assoc($result3);
                    // tag字段存在,執行其他操作
                    echo "tag關係【{$v}】已存在<br>";
                } else {
                    // tag關係字段不存在,插入新記錄
                    $tag = $v; // 要插入的tag值
                    $updateTime = time(); // 當前時間作爲update_time字段的值
                    
                    // 構建插入SQL語句
                    $sql = "INSERT INTO `ey_taglist` (`tid`, `aid`, `typeid`, `tag`, `arcrank`, `lang`, `add_time`, `update_time`) VALUES ('$tagid', '{$row['aid']}', '{$row['typeid']}', '$v', '0', 'cn', '$updateTime', '$updateTime') ";
                    
                    // 執行插入操作
                    if ($connection->query($sql) === TRUE) {
                        echo "新TAG關係已成功插入<br>";
                    } else {
                        echo "<br>插入新TAG關係失敗: " . $connection->error;
                    }
                }
            }
        }
        echo '<meta http-equiv="refresh" content="0;">';
    } else {
        echo "<br>未找到匹配的數據<br>";
    }

    // 釋放結果集內存
    mysqli_free_result($result);
} else {
    echo "<br>查詢失敗: " . mysqli_error($connection);
}

// 關閉數據庫連接
mysqli_close($connection);

function get_api($durl, $cache = 0)
{
    // 初始化cURL會話
    $ch = curl_init();

    // 設置cURL選項
    curl_setopt($ch, CURLOPT_URL, $durl);          // 設置請求的URL
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);          // 設置超時時間爲5秒
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   // 將結果通過變量返回,而不是直接輸出

    // 獲取Referer的主機部分
    $referer_host = parse_url($durl, PHP_URL_SCHEME) . '://' . parse_url($durl, PHP_URL_HOST);
    curl_setopt($ch, CURLOPT_REFERER, $referer_host);  // 設置Referer頭,指定來源主機部分

    // 模擬瀏覽器訪問的相關選項
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.9999.999 Safari/537.36');  // 設置User-Agent頭,模擬瀏覽器
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: application/json',
    'Content-Type: application/json; charset=utf-8'
    ));
    
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

    // 執行請求並獲取響應結果
    $r = curl_exec($ch);

    // 關閉cURL會話
    curl_close($ch);

    // 解析JSON格式的響應結果,並返回解析後的數組
    return json_decode($r, true);
}

function getBaiduSuggestion($title) {
    // 如果$title超過7個字符,則截取前7個字符
    if (mb_strlen($title, 'utf-8') > 7) {
        $title = mb_substr($title, 0, 7, 'utf-8');
    }
    $title = urlencode($title);
    $api = "https://www.baidu.com/sugrec?pre=1&p=1&ie=utf-8&prod=pc&csor=2&wd=".$title."";

    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => $api,
        CURLOPT_TIMEOUT => 5,
        CURLOPT_RETURNTRANSFER => true,
    ]);

    $r = curl_exec($ch);
    curl_close($ch);

    $r = json_decode($r, true);

    if (!empty($r['g'])) {
        $suggestions = array_column($r['g'], 'q');
        $randomIndex = array_rand($suggestions);
        return $suggestions[$randomIndex];
    } else {
        return false;
    }
}

function insertImage($content) {
    preg_match_all('/<\/p>/', $content, $matches, PREG_OFFSET_CAPTURE);
   $content = str_replace('<h2>','<h3>',$content);
    $content = str_replace('</h2>','</h3>',$content);
    // 如果存在 </p> 標籤
    if (!empty($matches[0])) {
        $count = count($matches[0]); // </p> 標籤的數量
        
        // 對每個匹配位置應用回調函數
        $content = preg_replace_callback(
            '/<\/p>/',
            function($match) {
                static $insertCount = 0;
                $insertCount++;
                
                // 每隔五個 </p> 插入一張圖片
                if ($insertCount % 5 == 0) {
                    return $match[0] . '<p style="text-align:center"><img src="/uploads/allimg/20241010/'.md5(mt_rand(1,106)).'.jpg"></p>';
                } else {
                    return $match[0];
                }
            },
            $content,
            $count - 1 // 限制替換次數爲匹配到的 </p> 標籤數量減一
        );
    }

    return $content;
}

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

易优cms 如何批量快速修改栏目?

易優cms 如何批量快速修改欄目? 程序筆記 易優cms

當下載易優模板後會發現有很多欄目需要修改,但是我只想修改欄目的名稱,欄目的描述,欄目的關鍵詞,其他保持不變,這怎麼做呢?PHP腳本&lt;?php $filePath = './sort.txt'; // 包含數據庫配置文件 $dbSet = require('../application/data…
👁 2349
易优cms php远程获取文章数据,定时发布文章

易優cms php遠程獲取文章數據,定時發佈文章 程序筆記 易優cms

PHP遠程獲取文章數據,再發布到自己網站! 自帶優化雙標題自帶關鍵詞分詞自動給文章插入圖片自帶tag聚合自動更新首頁緩存配合寶塔計劃任務可以實現自動化更新代碼:🔒 隱藏內容:評論後查看&lt;?php // token驗證 $token = md5('你的密鑰'); // echo $token; …
👁 194
易优CMS安装常见问题总结

易優CMS安裝常見問題總結 程序筆記 易優cms

EyouCMS作爲一款基於PHP+MySQL開發的企業建站系統,在實際安裝部署過程中,由於服務器環境差異、操作流程不當等原因,常常會遇到各種各樣的問題。本文彙總了7個最常見的安裝報錯及其解決方法,供大家參考。問題一:安裝報錯“請仔細覈對數據庫賬號和密碼”報錯現象:安裝過程中提示“數據庫連接失敗,請重…
👁 72
易优CMS(EyouCms)系统安装教程

易優CMS(EyouCms)系統安裝教程 程序筆記 易優cms

一、系統概述易優內容管理系統(EyouCms)是一款基於PHP+MySQL架構開發的企業級開源建站系統,採用ThinkPHP 5.0作爲底層框架。二、環境要求在安裝EyouCms之前,請確保服務器環境滿足以下要求:項目要求操作系統Linux / Unix / WindowsWeb服務器Nginx /…
👁 58
资源网站typecho001模板

資源網站typecho001模板 程序筆記 Typecho

typecho001模板板本請勿修改本模板文件夾名稱 文件夾名稱爲:typecho001 1.4修復文章頁面js輸出問題1.3修復未安裝插件時的報錯提示優化列表頁代碼輸出1.2修復評論功能增加自定義首頁標題1.1修復評論回覆不對稱功能添加首頁單獨的標題設置功能增加網站favicon.ico圖標增加一…
👁 198

推薦閱讀

建筑地产工程企业网站模板 0828

建築地產工程企業網站模板 0828 實用收藏 易優模板

此套eyoucms模板適用於建築、地產與工程企業,設計風格大氣穩重,能夠展示建築工程案例、地產項目、企業實力及品牌形象。有助於建築地產企業在線上樹立品牌形象,吸引客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 34
牙齿美容医疔企业网站模板 0172

牙齒美容醫疔企業網站模板 0172 實用收藏 易優模板

一款針對牙齒美容與醫療企業的eyoucms網站模板。設計風格專業潔淨,能夠展示牙齒美容項目、醫療團隊、診療設備及成功案例。有助於口腔醫療機構在線上吸引患者,提升品牌專業度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優C…
👁 45
(自适应手机版)响应式创意餐饮酒店装饰设计类网站pbootcms模板 html5蓝色餐饮酒店设计网站源码下载 0710

(自適應手機版)響應式創意餐飲酒店裝飾設計類網站pbootcms模板 html5藍色餐飲酒店設計網站源碼下載 0710 實用收藏 pbootcms模板

一款響應式創意餐飲酒店裝飾設計類PbootCMS網站模板,支持PC與WAP端。設計風格現代時尚,適合展示酒店、餐飲空間的設計案例與創意理念。有助於室內設計公司在線上吸引高端商業項目客戶。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.…
👁 35
(PC+WAP)红色营销型钢材不秀钢网站pbootcms模板 钢材钢管类网站源码下载 0081

(PC+WAP)紅色營銷型鋼材不秀鋼網站pbootcms模板 鋼材鋼管類網站源碼下載 0081 實用收藏 pbootcms模板

這套PbootCMS模板採用紅色營銷風格,專爲鋼材、不鏽鋼及鋼管企業設計,支持PC和WAP端。頁面設計注重展示產品規格與工程案例,能夠有效吸引建築與工業領域客戶。有助於鋼材貿易或加工企業在線上提升品牌形象與銷售業績。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admi…
👁 50
理工实验外语学校学院网站模板 0829

理工實驗外語學校學院網站模板 0829 實用收藏 易優模板

一款針對理工、實驗、外語與學校學院的eyoucms網站模板。設計風格科技教育,能夠展示實驗室設施、外語教學、科研成果及招生信息。有助於理工外語類院校在線上展示特色。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(E…
👁 42
纸糊模塑纤维成型网站模板 0173

紙糊模塑纖維成型網站模板 0173 實用收藏 易優模板

此套eyoucms模板適用於紙糊、模塑與纖維成型行業,設計風格專業科技,能夠展示紙漿模塑產品、纖維成型技術及工業應用。有助於環保包裝企業在線上展示產品,吸引工業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(…
👁 43