도메인이 바뀐경우 게시판 이미지 경로 바꾸기 입니다.
도메인이 바뀐경우 게시판 이미지 경로 바꾸기 입니다.
에디터에 등록된 모든 이미지 경로를 /data로 수정
예) 도메인.com/data/editor/images.jpg > /data/editor/images.jpg
<?php
include_once('./_common.php');
if (!defined('_GNUBOARD_')) exit;
if (!$is_admin) die('관리자만 실행 가능합니다.');
set_time_limit(0);
echo '<pre>';
$sql = " SELECT bo_table FROM {$g5['board_table']} ORDER BY bo_table ";
$result = sql_query($sql);
$total_board = 0;
$total_post = 0;
/*
* /data/editor/ 앞에 어떤 도메인이 붙어 있든 제거
* 예:
* http://a.도메인.com/data/editor/...
* https://a.도메인.com/data/editor/...
* //a.도메인.com/data/editor/...
* 모두 => /data/editor/...
*/
$pattern = '#(?:https?:)?//[^"\']+/data/editor/#i';
$replacement = '/data/editor/';
while ($row = sql_fetch_array($result)) {
$bo_table = $row['bo_table'];
$write_table = $g5['write_prefix'] . $bo_table;
$total_board++;
echo "게시판 처리중: {$bo_table}\n";
$select_sql = " SELECT wr_id, wr_content FROM {$write_table} ";
$write_result = sql_query($select_sql);
$board_count = 0;
while ($wr = sql_fetch_array($write_result)) {
$wr_id = (int)$wr['wr_id'];
$content = $wr['wr_content'];
$new_content = preg_replace($pattern, $replacement, $content);
if ($new_content !== $content) {
$escaped_content = sql_real_escape_string($new_content);
$update_sql = "
UPDATE {$write_table}
SET wr_content = '{$escaped_content}'
WHERE wr_id = '{$wr_id}'
";
sql_query($update_sql);
$board_count++;
$total_post++;
echo " - 수정됨: wr_id = {$wr_id}\n";
}
}
echo " => {$bo_table} 수정 건수: {$board_count}\n\n";
}
echo "전체 게시판 수: {$total_board}\n";
echo "전체 수정 게시글 수: {$total_post}\n";
echo "완료\n";
echo '</pre>';
?>
댓글 6개