Web/PHP
제로->킴스 컨버트, 변환
aucd29
2013. 9. 26. 21:47
<?php
// +----------------------------------------------------------------------+
// | 2004-01-30 | ZeroBoard -> Kimsplus(file ver) Convert |
// +----------------------------------------------------------------------+
// | Authors: aucd29<aucd29@kornet.net> |
// +----------------------------------------------------------------------+
$sTable = array('data2','data3','gongji','kyogaenews'); // 백업할 것
//'kyogaenews','bbsnews','program4'
$objZK = & new zeroKim;
if(is_array($sTable))
{
foreach($sTable as $index => $value)
{
$objZK->select($value);
}
}
else
{
$objZK->select($sTable);
}
echo '완료되었습니다.';
class zeroKim
{
var $sTable;
var $sID;
var $aNoticeNo = array();
var $aList = array();
function zeroKim()
{
$dbconn = mysql_connect('localhost','kjbbs','kjbbs') or die("DB에 연결할 수 없습니다. 관리자에게 문의 하십시요");
mysql_select_db('kjbbs',$dbconn);
}
// ------------------------------------------------------------------------
// 디비 선택 해서 가져오기
// ------------------------------------------------------------------------
function select($sTable)
{
$this->sTable = $sTable;
if($this->aNoticeNo)
{
unset($this->aNoticeNo);
}
if($this->aList)
{
unset($this->aList);
}
$sql = "SELECT * FROM zetyx_board_$this->sTable ORDER BY no DESC";
$res = mysql_query($sql) or die(mysql_error().$sql);
while($rs = mysql_fetch_array($res))
{
$this->toFile($rs);
}
}
// ------------------------------------------------------------------------
// 내용을 파일로 생성하기
// ------------------------------------------------------------------------
function toFile(&$rs)
{
/*
킴스 보드 파일디비 구조 .cgi
$UID = $DAT_V[0];
$PASS = $DAT_V[1];
$NAME = $DAT_V[2];
$EMAIL = $DAT_V[3];
$URL = $DAT_V[4];
$SUBJECT = stripslashes($DAT_V[5]);
$REMOTE_ADDR = $DAT_V[6];
$HTTP_USER_AGENT = $DAT_V[7];
$DATE = $DAT_V[8];
//$CONTENT = $DAT_V[9];
//$HTML = $DAT_V[10];
$CATEGORY = $DAT_V[11];
$SECRET = $DAT_V[12];
$UPLOADFILE = $DAT_V[13];
$FILESIZE = $DAT_V[14];
$FILELINK = $DAT_V[15];
$PREVIEW = $DAT_V[16];
$THREAD = $DAT_V[17];
$FILESIZE1 = $DAT_V[18];
$GISU = $DAT_V[20];
$IMOTICON = $DAT_V[21];
$WW = $DAT_V[23];
$rgisu = $DAT_V[24];
*/
if(!is_dir("./$this->sTable"))
{
@mkdir("./$this->sTable", 0777);
@mkdir("./$this->sTable/upload", 0777);
@mkdir("./$this->sTable/data", 0777);
}
$date = date("Y-m-d [H:i]", $rs[reg_date]);
$html = ($rs[use_html]) ? 'br' : 'text';
if($rs[file_name1])
{
$filesize = @filesize("../bbs/$rs[file_name1]");
@copy("../bbs/$rs[file_name1]", "./$this->sTable/upload/$rs[s_file_name1]");
}
if($rs[file_name2])
{
$filesize1 = @filesize("../bbs/$rs[file_name2]");
@copy("../bbs/$rs[file_name2]", "./$this->sTable/upload/$rs[s_file_name2]");
}
$sql = "SELECT * FROM zetyx_board_comment_$this->sTable WHERE parent='$rs[no]'";
$res = mysql_query($sql);
$nNum = mysql_num_rows($res);
if(!$res)
{
echo '<font color=red style=font-size:9pt>';
echo mysql_error();
echo '<br>';
echo $sql;
echo '</font>';
exit;
}
// 리플일때 파일명을 변경해주기
if($rs[depth])
{
$sIDtmp = explode('-', $rs[headnum]);
$sID = $sIDtmp[1].'-'.date("His",$rs[reg_date]);
}
else
{
$sID = $rs[no];
}
if($nNum)
{
// fwrite($fp, "$DATE|$NAME|$COMMENT|$SYKIM|$SUBJECT|$EMAIL|$HOMEPAGE|\n");
$fp = fopen("./$this->sTable/data/$sID.txt", w);
$i=0;
while($rs2 = mysql_fetch_array($res))
{
$date = date("m월d일",$rs2[reg_date]);
fputs($fp,"$date|$rs2[name]|$rs2[memo]|||||\n");
$i++;
}
fclose($fp);
}
/*
*.num 파일
$HIT = $NUM_V[0] + 1;
$REQ = $NUM_V[1];
$DOWN = $NUM_V[2];
$OPINUM = $NUM_V[3];
*/
$this->aList[$sID] = $sID;
// ------------------------------------------------------------------------
// 머릿넘버가 아래숫자보다 크면 공지사항이다.
// ------------------------------------------------------------------------
$sIDtmp = explode('-', $rs[headnum]);
if($sIDtmp[1] >= 2000000000)
{
$sNoticeChk = 'Y';
$this->aNoticeNo[$sID] = $sID;
}
else
{
$sNoticeChk='';
}
$memo = nl2br($rs[memo]);
$memo = str_replace("\r\n","",$memo);
// ------------------------------------------------------------------------
// 깊이값이 있으면 그건 댓글이다.
// ------------------------------------------------------------------------
if($rs[depth])
{
$fp = fopen("./$this->sTable/data/$sID.cgi", w);
fputs( $fp,"$sID|$rs[password]|$rs[name]|$rs[email]|$rs[homepage]|$rs[subject]|$rs[ip]||$date|$memo|$html|||$rs[s_file_name1]|$filesize|$rs[s_file_name2]|||$filesize1||||$sNoticeChk|");
fclose($fp);
$fp = fopen("./$this->sTable/data/$sID.num", w);
fputs($fp,"$rs[hit]|0|$rs[download1]|$i|");
fclose($fp);
}
else
{
$fp = fopen("./$this->sTable/data/$rs[no].cgi", w);
fputs( $fp,"$rs[no]|$rs[password]|$rs[name]|$rs[email]|$rs[homepage]|$rs[subject]|$rs[ip]||$date|$memo|$html|||$rs[s_file_name1]|$filesize|$rs[s_file_name2]|||$filesize1||||$sNoticeChk|");
fclose($fp);
$fp = fopen("./$this->sTable/data/$rs[no].num", w);
fputs($fp,"$rs[hit]|0|$rs[download1]|$i|");
fclose($fp);
}
if($sID)
{
unset($sID);
}
if($this->aNoticeNo)
{
$this->adminNotice();
}
if($this->aList)
{
$this->createList();
}
}
// ------------------------------------------------------------------------
// 공지사항을 체크한다
// ------------------------------------------------------------------------
function adminNotice()
{
$fp = fopen("./$this->sTable/notice.cgi", w);
foreach($this->aNoticeNo as $index => $value)
{
fputs($fp,"$value\n");
}
fclose($fp);
}
// ------------------------------------------------------------------------
// 리스트 파일 생성
// ------------------------------------------------------------------------
function createList()
{
$fp = fopen("./$this->sTable/list.cgi", w);
foreach($this->aList as $index => $value)
{
fputs($fp,"$value\n");
}
fclose($fp);
}
}
?>
// +----------------------------------------------------------------------+
// | 2004-01-30 | ZeroBoard -> Kimsplus(file ver) Convert |
// +----------------------------------------------------------------------+
// | Authors: aucd29<aucd29@kornet.net> |
// +----------------------------------------------------------------------+
$sTable = array('data2','data3','gongji','kyogaenews'); // 백업할 것
//'kyogaenews','bbsnews','program4'
$objZK = & new zeroKim;
if(is_array($sTable))
{
foreach($sTable as $index => $value)
{
$objZK->select($value);
}
}
else
{
$objZK->select($sTable);
}
echo '완료되었습니다.';
class zeroKim
{
var $sTable;
var $sID;
var $aNoticeNo = array();
var $aList = array();
function zeroKim()
{
$dbconn = mysql_connect('localhost','kjbbs','kjbbs') or die("DB에 연결할 수 없습니다. 관리자에게 문의 하십시요");
mysql_select_db('kjbbs',$dbconn);
}
// ------------------------------------------------------------------------
// 디비 선택 해서 가져오기
// ------------------------------------------------------------------------
function select($sTable)
{
$this->sTable = $sTable;
if($this->aNoticeNo)
{
unset($this->aNoticeNo);
}
if($this->aList)
{
unset($this->aList);
}
$sql = "SELECT * FROM zetyx_board_$this->sTable ORDER BY no DESC";
$res = mysql_query($sql) or die(mysql_error().$sql);
while($rs = mysql_fetch_array($res))
{
$this->toFile($rs);
}
}
// ------------------------------------------------------------------------
// 내용을 파일로 생성하기
// ------------------------------------------------------------------------
function toFile(&$rs)
{
/*
킴스 보드 파일디비 구조 .cgi
$UID = $DAT_V[0];
$PASS = $DAT_V[1];
$NAME = $DAT_V[2];
$EMAIL = $DAT_V[3];
$URL = $DAT_V[4];
$SUBJECT = stripslashes($DAT_V[5]);
$REMOTE_ADDR = $DAT_V[6];
$HTTP_USER_AGENT = $DAT_V[7];
$DATE = $DAT_V[8];
//$CONTENT = $DAT_V[9];
//$HTML = $DAT_V[10];
$CATEGORY = $DAT_V[11];
$SECRET = $DAT_V[12];
$UPLOADFILE = $DAT_V[13];
$FILESIZE = $DAT_V[14];
$FILELINK = $DAT_V[15];
$PREVIEW = $DAT_V[16];
$THREAD = $DAT_V[17];
$FILESIZE1 = $DAT_V[18];
$GISU = $DAT_V[20];
$IMOTICON = $DAT_V[21];
$WW = $DAT_V[23];
$rgisu = $DAT_V[24];
*/
if(!is_dir("./$this->sTable"))
{
@mkdir("./$this->sTable", 0777);
@mkdir("./$this->sTable/upload", 0777);
@mkdir("./$this->sTable/data", 0777);
}
$date = date("Y-m-d [H:i]", $rs[reg_date]);
$html = ($rs[use_html]) ? 'br' : 'text';
if($rs[file_name1])
{
$filesize = @filesize("../bbs/$rs[file_name1]");
@copy("../bbs/$rs[file_name1]", "./$this->sTable/upload/$rs[s_file_name1]");
}
if($rs[file_name2])
{
$filesize1 = @filesize("../bbs/$rs[file_name2]");
@copy("../bbs/$rs[file_name2]", "./$this->sTable/upload/$rs[s_file_name2]");
}
$sql = "SELECT * FROM zetyx_board_comment_$this->sTable WHERE parent='$rs[no]'";
$res = mysql_query($sql);
$nNum = mysql_num_rows($res);
if(!$res)
{
echo '<font color=red style=font-size:9pt>';
echo mysql_error();
echo '<br>';
echo $sql;
echo '</font>';
exit;
}
// 리플일때 파일명을 변경해주기
if($rs[depth])
{
$sIDtmp = explode('-', $rs[headnum]);
$sID = $sIDtmp[1].'-'.date("His",$rs[reg_date]);
}
else
{
$sID = $rs[no];
}
if($nNum)
{
// fwrite($fp, "$DATE|$NAME|$COMMENT|$SYKIM|$SUBJECT|$EMAIL|$HOMEPAGE|\n");
$fp = fopen("./$this->sTable/data/$sID.txt", w);
$i=0;
while($rs2 = mysql_fetch_array($res))
{
$date = date("m월d일",$rs2[reg_date]);
fputs($fp,"$date|$rs2[name]|$rs2[memo]|||||\n");
$i++;
}
fclose($fp);
}
/*
*.num 파일
$HIT = $NUM_V[0] + 1;
$REQ = $NUM_V[1];
$DOWN = $NUM_V[2];
$OPINUM = $NUM_V[3];
*/
$this->aList[$sID] = $sID;
// ------------------------------------------------------------------------
// 머릿넘버가 아래숫자보다 크면 공지사항이다.
// ------------------------------------------------------------------------
$sIDtmp = explode('-', $rs[headnum]);
if($sIDtmp[1] >= 2000000000)
{
$sNoticeChk = 'Y';
$this->aNoticeNo[$sID] = $sID;
}
else
{
$sNoticeChk='';
}
$memo = nl2br($rs[memo]);
$memo = str_replace("\r\n","",$memo);
// ------------------------------------------------------------------------
// 깊이값이 있으면 그건 댓글이다.
// ------------------------------------------------------------------------
if($rs[depth])
{
$fp = fopen("./$this->sTable/data/$sID.cgi", w);
fputs( $fp,"$sID|$rs[password]|$rs[name]|$rs[email]|$rs[homepage]|$rs[subject]|$rs[ip]||$date|$memo|$html|||$rs[s_file_name1]|$filesize|$rs[s_file_name2]|||$filesize1||||$sNoticeChk|");
fclose($fp);
$fp = fopen("./$this->sTable/data/$sID.num", w);
fputs($fp,"$rs[hit]|0|$rs[download1]|$i|");
fclose($fp);
}
else
{
$fp = fopen("./$this->sTable/data/$rs[no].cgi", w);
fputs( $fp,"$rs[no]|$rs[password]|$rs[name]|$rs[email]|$rs[homepage]|$rs[subject]|$rs[ip]||$date|$memo|$html|||$rs[s_file_name1]|$filesize|$rs[s_file_name2]|||$filesize1||||$sNoticeChk|");
fclose($fp);
$fp = fopen("./$this->sTable/data/$rs[no].num", w);
fputs($fp,"$rs[hit]|0|$rs[download1]|$i|");
fclose($fp);
}
if($sID)
{
unset($sID);
}
if($this->aNoticeNo)
{
$this->adminNotice();
}
if($this->aList)
{
$this->createList();
}
}
// ------------------------------------------------------------------------
// 공지사항을 체크한다
// ------------------------------------------------------------------------
function adminNotice()
{
$fp = fopen("./$this->sTable/notice.cgi", w);
foreach($this->aNoticeNo as $index => $value)
{
fputs($fp,"$value\n");
}
fclose($fp);
}
// ------------------------------------------------------------------------
// 리스트 파일 생성
// ------------------------------------------------------------------------
function createList()
{
$fp = fopen("./$this->sTable/list.cgi", w);
foreach($this->aList as $index => $value)
{
fputs($fp,"$value\n");
}
fclose($fp);
}
}
?>