fetch("링크주소"); //예) https://도메인.com/rss
$table = "gallery"; // 예)게시판 테이블 이름
$xml = @simplexml_load_string($snoopy->results);
foreach ($xml->channel->item as $key) {
$xml2[] = $key;
}
$xml = array_reverse($xml2);
$all_data = 0; //불러온 데이터 갯수 초기화
$sec_data = 0; //DB에 입력한 데이터 갯수 초기화
$wrnum = sql_fetch_array(sql_query("SELECT * FROM `g5_write_" . $table . "` order by `wr_num`"));
if ($wrnum['wr_num'] == "") {
$wrnum['wr_num'] = -1;
} else {
$wrnum['wr_num'] = $wrnum['wr_num'] + 1;
}
foreach ($xml as $item) {
$all_data = $all_data + 1;
$chklink_sql = "SELECT * FROM `g5_write_" . $table . "` WHERE `wr_link1`='" . $item->link . "'"; //이미 불러왔었던 포스팅인지 확인 -질의문
$chk_q = sql_query($chklink_sql); //이미 불러왔었던 포스팅인지 확인 -질의문 쿼리
if ($chk_q->num_rows < 1) { //검색결과 합이 1건 이하일 때만 db에 입력
$trans = array("'" => "\""); //내용 중 기호 '가 있으면 "로 변환 시킴 변환하지 한다고 정의.
$contt = strtr($item->description, $trans); //내용 중 기호 '가 있으면 "로 변환 시킴.
$str_date = $item->pubDate; // 날자 포맷 할거임
$date = date("Y-m-d H:i:s", strtotime($str_date)); //Wed, 30 Sep 2015 11:48:17 +0900 => 1900-01-01 12:00:00 이런 식으로
// 이미지 처리
$images = extract_image_urls($item->description);
$saved_images = [];
foreach ($images as $image_url) {
$saved_images[] = save_image($image_url);
}
// 게시글 내용에 저장된 이미지 경로 적용
foreach ($saved_images as $saved_image) {
$contt = str_replace($saved_image['url'], $saved_image['path'], $contt);
}
$sql = "INSERT INTO `g5_write_" . $table . "` (
`wr_num`,
`wr_option`,
`wr_name`,
`wr_subject`,
`wr_content`,
`wr_link1`,
`wr_hit`,
`wr_datetime`
)
VALUES ('" . $wrnum['wr_num'] . "','html1','" . $item->author . "','" . $item->title . "','" . $contt . "','" . $item->link . "','" . RAND(1000,4000) . "','" . $date . "'
)";
if (sql_query($sql)) {
$wr_id = sql_insert_id();
sql_query("update `g5_write_" . $table . "` set wr_parent = '" . $wr_id . "', wr_num = '" . -$wr_id . "' where wr_id = '" . $wr_id . "'"); //wr_parent update
sql_query("insert into {$g5['board_new_table']} (bo_table, wr_id, wr_parent, bn_datetime, mb_id) values ('" . $table . "', '" . $wr_id . "', '" . $wr_id . "', '" . G5_TIME_YMDHIS . "', '" . $item->author . "')"); //new
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '" . $table . "'"); //write_count ++
$sec_data = $sec_data + 1;
$wrnum['wr_num'] = $wrnum['wr_num'] - 1;
}
}
}
echo $msg = "총 불러온 포스팅 [" . $all_data . "] 건 중 DB에 [" . $sec_data . "] 건 입력하였습니다.";
echo "
";
echo " 게시판으로 가기";
} else {
echo "포스팅 가져오기";
}
// 이미지 URL 추출 함수
function extract_image_urls($description) {
preg_match_all('/