红穆笔记
首頁 程序筆記 wordpress數據遷移帝國cms 欄目轉移代碼
程序筆記 wordpress

wordpress數據遷移帝國cms 欄目轉移代碼

wordpress数据迁移帝国cms 栏目转移代码

config.php

🔒 隱藏內容:會員可查看

<?php
define('DB_NAME', 'root');
define('DB_USER', 'root');
define('DB_PASSWORD', 'RspC7M8seHywXZBW');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
// 檢測連接
if (!$conn = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD)) {
die("<b>PHP鏈接MYSQL數據庫出現錯誤!請檢查配置!</b>");
}
// //選擇數據庫
// if(!mysqli_select_db($conn,DB_NAME)){
// die("<b>PHP選擇MYSQL數據庫出現錯誤!請檢查配置!</b>");
// }
//設置字符集
mysqli_set_charset($conn,DB_CHARSET);

function bq_replac($html){
$html = preg_replace('/{eyou:weapp\s+type=[\s\'"]+default[\s\'"]+\/}/s','',$html);
$html = preg_replace('/{\$eyou.field.typeid\|gettoptype=###,[\s\'"]+typename[\s\'"]+}/','[!--bclass.name--]',$html);
return $html;
}
function str_replace_once($needle, $replace, $haystack) {//只替換一次字符串
$pos = strpos($haystack, $needle);
if ($pos === false) {
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}

function turncate($dbname,$dbtable){
global $conn;
if(mysqli_query($conn, "TRUNCATE `{$dbname}`.`{$dbtable}`")){
echo "{$dbname}庫{$dbtable}表已清空<br>";
}else{
echo "{$dbname}庫{$dbtable}表清空失敗<br>";
}
}
function insert_sql($sql){
global $conn;
if(mysqli_query($conn, $sql)){
echo "插入成功<br>";
}else{
echo "插入失敗{$sql}<br>";
}
}

function copyDirectory($src, $dst) {
// 檢查源目錄是否存在並且是否是目錄
if (!is_dir($src)) {
return false;
}

// 檢查目標目錄是否存在並且是否是目錄
if (!is_dir($dst)) {
mkdir($dst);
}

// 打開源目錄
$dirHandle = opendir($src);

// 循環讀取源目錄下的文件和目錄,複製到目標目錄
while (false !== ($file = readdir($dirHandle))) {
if ($file != "." && $file != "..") {
$srcFile = $src . "/" . $file;
$dstFile = $dst . "/" . $file;

if (is_dir($srcFile)) {
copyDirectory($srcFile, $dstFile); // 遞歸複製子目錄
} else {
copy($srcFile, $dstFile);
}
}
}

closedir($dirHandle);

return true;
}

function ToSql($sql){
global $conn;
$r = $conn->query($sql);
if($r){
echo '執行成功:'.$sql.'<br>';
}else{
echo $sql;
}
}
function deleteFiles($dir) {
$files = glob("$dir/*"); // 查找當前目錄下的所有文件和目錄
foreach($files as $file) {
if(is_file($file)) {
unlink($file); // 刪除不需要的文件
} elseif(is_dir($file)) {
deleteFiles($file); // 遞歸處理子目錄
}
}
}
function importSqlZip($remoteUrl, $dbName, $dbUser, $dbPass, $dbHost = 'localhost', $sqlDir = __DIR__.'/path/') {
// 創建一個臨時文件用於保存下載的 Zip 文件
$tempZip = tempnam(sys_get_temp_dir(), 'sql_zip_');

// 下載遠程 Zip 文件並保存到本地
$fp = fopen($tempZip, 'w');
$ch = curl_init($remoteUrl);
curl_setopt($ch, CURLOPT_FILE, $fp);
$success = curl_exec($ch);
curl_close($ch);
fclose($fp);

if (!$success) {
throw new Exception('Failed to download the remote SQL ZIP file.');
}
// 創建指定目錄
if (!mkdir($sqlDir, 0777, true)) {
throw new Exception('Failed to create directory.');
}

// 解壓縮文件到指定目錄
$zip = new ZipArchive();
if ($zip->open($tempZip) === TRUE) {
$zip->extractTo($sqlDir);
$zip->close();
} else {
throw new Exception('Failed to extract the SQL ZIP file.');
}

$dsn = "mysql:host=$dbHost;dbname=$dbName";
$pdo = new PDO($dsn, $dbUser, $dbPass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 獲取數據庫所有表名
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);
foreach ($tables as $table) {
// 如果數據表名以指定前綴開頭,那麼刪除該數據表
if (strpos($table, "phome_") === 0) {
$pdo->query("DROP TABLE IF EXISTS $table");
}
}

// 導入 SQL 文件
$files = glob($sqlDir . '*.sql');
foreach ($files as $file) {
$pdo->exec(file_get_contents($file));
}

// 刪除臨時文件和 SQL 文件
unlink($tempZip);
$files = glob($sqlDir . '*.sql');
foreach ($files as $file) {
unlink($file);
}
rmdir($sqlDir);
}
function file_get($url){
// 初始化 cURL
$ch = curl_init();
// 設置 cURL 選項
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 設置 User-Agent 頭信息
$user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36';
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
// 發送 HTTP 請求
$response = curl_exec($ch);
// 關閉 cURL
curl_close($ch);
// 處理響應結果
if ($response === false) {
return '請求失敗';
}
return $response;
}

function match_regex($pattern, $subject) {
if (preg_match($pattern, $subject, $matches)) {
return $matches;
} else {
return false;
}
}

function removeChinese($str) {
return preg_replace('/[\x{4e00}-\x{9fa5}]/u', '', $str);
}

function clearAndImportSQL($dbHost, $dbName, $dbUser, $dbPass, $sqlFile) {
$dbCharset = "utf8mb4";
$dsn = "mysql:host=$dbHost;dbname=$dbName;charset=$dbCharset";

try {
$pdo = new PDO($dsn, $dbUser, $dbPass);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// 清空數據庫表
$tables = $pdo->query("SHOW TABLES")->fetchAll(PDO::FETCH_COLUMN);

foreach ($tables as $table) {
$pdo->exec("TRUNCATE TABLE $table");
}

// 導入.sql文件
$sql = file_get_contents($sqlFile);

$pdo->exec($sql);

echo "數據庫:".$dbName.",SQL文件:{$sqlFile},導入結果:SQL導入成功.<br>";
} catch (PDOException $e) {
echo "Error: " . $e->getMessage();
}

$pdo = null;
}
/**
* 遞歸更改目錄及其子目錄和文件的權限
*
* @param string $path 要更改權限的目錄路徑
* @param int $filemode 文件權限(例如:0644)
* @param int $dirmode 目錄權限(例如:0755)
*
* @return bool 成功則返回 true,否則返回 false
*/
function chmod_r($path, $filemode, $dirmode) {
if (is_dir($path) ) {
if (!chmod($path, $dirmode)) { // 更改目錄的權限爲 dirmode
return false;
}
$dh = opendir($path);
while (($file = readdir($dh)) !== false) {
if($file != '.' && $file != '..') {
$fullpath = $path.'/'.$file;
if(is_link($fullpath)) {
if (!chmod($fullpath, $filemode)) { // 更改符號鏈接文件的權限爲 filemode
return false;
}
} elseif(!is_dir($fullpath)) {
if (!chmod($fullpath, $filemode)) { // 更改普通文件的權限爲 filemode
return false;
}
} elseif(!chmod_r($fullpath, $filemode, $dirmode)) { // 遞歸更改子目錄和文件的權限
return false;
}
}
}
closedir($dh);
} else {
if (!chmod($path, $filemode)) { // 更改目錄下文件的權限爲 filemode
return false;
}
}
return true; // 成功返回 true
}

// 讀取數據庫文件,然後傳入需要替換的數組
function modifyDatabaseConfig($filename, $newConfig) {
// 讀取配置文件內容
$file = file_get_contents($filename);
// 替換配置內容

// 配置文件裏的變量名前綴
$prefix = '$ecms_config[\'db\']';

// 遍歷新配置,將對應的變量替換爲新值
foreach ($newConfig as $key => $value) {
$pattern = '/' . preg_quote($prefix) . '\[\'' . preg_quote($key) . '\'\]\s*=\s*\'[^;]+;/';
$replace = $prefix . '[\'' . $key . '\'] = \'' . $value . '\';';
$file = preg_replace($pattern, $replace, $file);
}
// 保存文件
file_put_contents($filename, $file);
}
function find_files($dir, $extension) {
$result = array();
// 打開目錄並讀取其中的文件
if (is_dir($dir)) {
$files = scandir($dir);
foreach($files as $file) {
if ($file != '.' && $file != '..') {
// 如果是目錄,則遞歸查詢子目錄
if (is_dir($dir . '/' . $file)) {
$result = array_merge($result, find_files($dir . '/' . $file, $extension));
}
// 如果是文件且文件擴展名匹配,則將其添加到結果數組中
else if (preg_match("/$extension\$/i", $file)) {
$result[] = $dir . '/' . $file;
}
}
}
}
return $result;
}

轉移欄目.php

🔒 隱藏內容:會員可查看

<?php
require("./config.php");
$dbname2 = 'www_azhenxi_com';
$dbname = 'ecms_site';

// 使用 mysqli 執行 SQL 語句
$sql = "SELECT * FROM `{$dbname2}`.`liwuterms`";

$result = mysqli_query($conn, $sql);
$class = mysqli_fetch_all($result,MYSQLI_ASSOC);

turncate($dbname,'phome_enewsclass');
turncate($dbname,'phome_enewsclassadd');

foreach ( $class as $v){
$islast = 1;
$fearthclass = '';
$songclass = '';
$class_sql = "INSERT INTO `{$dbname}`.`phome_enewsclass` (`classid`, `bclassid`, `classname`, `sonclass`, `is_zt`, `lencord`, `link_num`, `newstempid`, `onclick`, `listtempid`, `featherclass`, `islast`, `classpath`, `classtype`, `newspath`, `filename`, `filetype`, `openpl`, `openadd`, `newline`, `hotline`, `goodline`, `classurl`, `groupid`, `myorder`, `filename_qz`, `hotplline`, `modid`, `checked`, `firstline`, `bname`, `islist`, `searchtempid`, `tid`, `tbname`, `maxnum`, `checkpl`, `down_num`, `online_num`, `listorder`, `reorder`, `intro`, `classimg`, `jstempid`, `addinfofen`, `listdt`, `showclass`, `showdt`, `checkqadd`, `qaddlist`, `qaddgroupid`, `qaddshowkey`, `adminqinfo`, `doctime`, `classpagekey`, `dtlisttempid`, `classtempid`, `nreclass`, `nreinfo`, `nrejs`, `nottobq`, `ipath`, `addreinfo`, `haddlist`, `sametitle`, `definfovoteid`, `wburl`, `qeditchecked`, `wapstyleid`, `repreinfo`, `pltempid`, `cgroupid`, `yhid`, `wfid`, `cgtoinfo`, `bdinfoid`, `repagenum`, `keycid`, `allinfos`, `infos`, `addtime`) VALUES ({$v['term_id']}, '0', '{$v['name']}', '{$songclass}', '0', '25', '10', '1', '0', '1', '{$fearthclass}', '{$islast}', 'category/{$v['slug']}', '.html', '', '0', '.html', '0', '1', '10', '10', '10', '', '0', '0', '', '10', '1', '1', '10', '{$v['name']}', '0', '0', '1', 'news', '0', '0', '2', '2', 'id DESC', 'newstime DESC', '', '', '1', '0', '0', '0', '0', '0', '0', '', '0', '0', '0', '', '1', '1', '0', '0', '0', '0', '', '1', '0', '0', '0', '', '0', '0', '0', '0', '', '0', '0', '0', '', '0', '0', '0', '0', '".time()."');";

// print_r($class_sql);die;
if(mysqli_query($conn, $class_sql)){
echo "{$dbname}欄目主表增加成功:{$v['name']}<br>";
}else{
echo "{$dbname}欄目主表增加失敗:{$v['name']}<br>";
}
$class_sql = "INSERT INTO `{$dbname}`.`phome_enewsclassadd` (`classid`, `classtext`, `ttids`) VALUES ('{$v['term_id']}', ' ', '');";
// print_r($class_sql);die;
if(mysqli_query($conn, $class_sql)){
echo "{$dbname}欄目副表增加成功:{$v['name']}<br>";
}else{
echo "{$dbname}欄目副表增加失敗:{$v['name']}<br>";
}
}

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

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

作者主頁 查看主頁 →

相關文章

wordpress怎么取消修订和自动保存草稿?

wordpress怎麼取消修訂和自動保存草稿? 程序筆記 wordpress

WordPress自動儲存文章修訂版本記錄的功能,當你每編輯一次文章時,就會在後臺記錄一次,每次修訂都會在posts表中插入一條記錄。由於文章修訂與自動保存的干預,往往會使得文章的ID越來越大。雖然不會對於你的Wordpress運行造成很大的麻煩,但是文章版本過多的話會給你的空間和數據庫增加很大的負…
👁 373
帝国cms博客数据迁移至wordpress详细教程

帝國cms博客數據遷移至wordpress詳細教程 程序筆記 wordpress

PS1:第二次修改,目前已支持分類,文章,tag三者數據轉移PS2:如果文章ID一直對不齊,可以嘗試清空WordPress的文章分類數據表,關係表我之前博客用typecho,後來遷移到帝國,但是帝國功能太多了,博客用帝國有點大材小用的感覺!再者,我用博客我常記錄一些重要的代碼,這些代碼都是我辛辛苦苦…
👁 546
wordpress关于图片转码导致页面卡死的问题

wordpress關於圖片轉碼導致頁面卡死的問題 程序筆記 wordpress

昨晚上在上傳圖片的時候,不知道怎麼回事,然後上傳的圖片自動轉碼了轉碼類型:BASE64編碼網站上面一張圖,你放服務器上,然後訪問鏈接,這樣圖片就顯示了但還有一種辦法,那就是直接將圖片轉碼,這樣直接訪問轉換好的CODE便可以訪問問題描述:當圖片比較小,只有幾kb的時候,轉碼然後設置在網站上,這樣可以避…
👁 152
wordpress 数据库查询操作

wordpress 數據庫查詢操作 程序筆記 wordpress

首先鏈接數據庫要連接WordPress數據庫,需要在PHP文件中引入wp-config.php文件。該文件包含有關WordPress安裝的數據庫配置信息和其他常量。以下是一個簡單的示例,展示如何引入wp-config.php文件並獲取數據庫連接:// 引入 wp-config.php 文件 requ…
👁 378
WordPress MySQL数据库表和分表结构功能说明

WordPress MySQL數據庫表和分表結構功能說明 程序筆記 wordpress

WordPress使用MySQL數據庫。數據表結構與常規有些差異,數據內容有常規的以數據表方式記錄,也有以數據元方式記錄,數據元方式在直接查看時不太直觀。想成爲一個開發者,我們必須掌握WordPress數據庫的基本結構,並在自己的插件或主題中使用他們,寫入或讀出數據。一、數據表截至WordPress…
👁 377

推薦閱讀

雕塑机机械设备类网站模板 0665

雕塑機機械設備類網站模板 0665 實用收藏 易優模板

此套eyoucms模板適用於雕塑機與機械設備行業,設計風格專業工業,能夠展示雕塑機產品、機械設備、技術參數及工業應用。有助於機械製造企業在線上展示產品,吸引工業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(…
👁 53
(自适应手机端)移民出国留学类网站pbootcms模板 教育培训机构网站源码下载 0372

(自適應手機端)移民出國留學類網站pbootcms模板 教育培訓機構網站源碼下載 0372 實用收藏 pbootcms模板

一款自適應手機端的移民出國留學與教育培訓PbootCMS網站模板。設計風格專業國際,適合移民中介、留學機構展示服務與成功案例。有助於出國服務機構在線上吸引有需求的學生與家庭。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn相關文章…
👁 47
sqlite 使用PDO执行SQL语句exec()、query()

sqlite 使用PDO執行SQL語句exec()、query() 語言筆記 mySql

在PHP腳本中,通過PDO執行SQL查詢與數據庫進行交互,可以分爲三種不同的策略,使用哪一種方法取決於你要做什麼操作。 1、使用PDO::exec()方法 當執行INSERT、UPDATE和DELETE等沒有結果集的查詢時,使用PDO對象中的exec()方法去執行。該方法成功執行後,將返回受影響的行…
👁 323
(PC+WAP)实验室化学仪器设备网站模板 1094

(PC+WAP)實驗室化學儀器設備網站模板 1094 實用收藏 pbootcms模板

一款實驗室化學儀器設備PbootCMS網站模板,支持PC與WAP端。設計風格專業科技,適合展示實驗室儀器、化學設備及技術實力。有助於科學儀器製造商在線上展示產品,吸引科研與檢測客戶。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn…
👁 38
响应式办公用品服务公司网站模板 0666

響應式辦公用品服務公司網站模板 0666 實用收藏 易優模板

一款針對辦公用品與服務公司的eyoucms響應式網站模板。設計風格專業實用,能夠展示辦公用品產品、企業服務、解決方案及品牌形象。有助於辦公用品企業在線上展示產品,吸引企業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易…
👁 34