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>";
}
}