load->database(); $dom = new DOMDocument; $dom->preserveWhiteSpace = false; $dom->loadXML($rss); $i = 0; $cnt = 0; $fail_cnt = 0; $ret = []; while(is_object($row = $dom->getElementsByTagName('item')->item($i))) { foreach($row->childNodes as $nodename) { $retdate = date("Y-m-d H:i:s"); if($nodename->nodeName=='title') { $ret[$i]['title'] = $nodename->nodeValue; } else if($nodename->nodeName=='description') { $ret[$i]['description'] = $nodename->nodeValue; } else if($nodename->nodeName=='link') { $ret[$i]['link'] = $nodename->nodeValue; } else if($nodename->nodeName=='media:content') { $ret[$i]['image'] = $nodename->getAttribute('url'); } else if($nodename->nodeName=='pubDate') { $ret[$i]['pubdate'] = $nodename->nodeValue; $regdate = strtotime($ret[$i]['pubdate']); if($regdate>0) { $regdate = date("Y-m-d H:i:s",$regdate); } } } //upload main image $dest_file_name = ''; if($ret[$i]['image']!='') { $upload_path = '/home/crossmap/files/news/'.date("Y")."/".date("m"); if (!is_dir($upload_path)) { mkdir($upload_path, 0777, TRUE); } $fname = date("Ymd-His-").$this->get_file_name($ret[$i]['image']); $dest_file_name = $upload_path.'/'.$fname; if(file_put_contents($dest_file_name, file_get_contents($ret[$i]['image']))==false) { echo "\nfile not restored\n"; $dest_file_name = ''; } } $dest_file_name = ($dest_file_name!='') ? str_replace('/home/crossmap','',$dest_file_name) : ''; $sql = "INSERT IGNORE INTO ".$this->tb_name." (". "title, content, main_img, ". "origin_url, regdate) VALUES (". "'".addslashes($ret[$i]['title'])."', '".addslashes($ret[$i]['description'])."', '".$dest_file_name."', ". "'".$ret[$i]['link']."', '$regdate')"; $return = $this->db->query($sql); if($return==true) { $cnt++; } else { $fail_cnt++; } $i++; } echo date("Y-m-d H:i:s").' / success : '.$cnt.' / fail cnt : '.$fail_cnt."\n"; } function migrate_cd_article_to_news() { $this->load->database(); $ten_days_before = date("Y-m-d",(time()-(60*60*24*10))).' 00:00:00'; $sql = "SELECT idx, title, content, main_img, origin_url, regdate FROM ".$this->tb_name." ". "WHERE registered_tf=0 AND crawldate>='$ten_days_before' ". "ORDER BY idx ASC LIMIT ".$this->limit; $query = $this->db->query($sql); $cnt = 0; $fail_cnt = 0; foreach($query->result_array() as $row) { if($row['main_img']!='') { $row['content'] = nl2br(addslashes('


'.$row['content'])); } $sql = "INSERT INTO ".$this->news_tb_name." (". "category_code, news_type, title, ". "sub_title, main_img, press_idx, ". "press_name, content, org_url, ". "is_del, is_display) VALUES (". "'12', 1, '".addslashes($row['title'])."', ". "'".addslashes($row['title'])."', '".addslashes($row['main_img'])."', 30, ". "'기독일보', '".addslashes($row['content'])."', '".$row['origin_url']."', ". "'N', 'N')"; echo $sql."\n"; $ret = $this->db->query($sql); if($ret==true) { $idx = $row['idx']; $sql = "UPDATE ".$this->tb_name." SET ". "registered_tf=1 WHERE idx='$idx'"; $this->db->query($sql); $cnt++; }else{ $fail_cnt++; //echo $sql."\n"; exit; } } echo date("Y-m-d H:i:s").' / succeess : '.$cnt.' / fail cnt : '.$fail_cnt."\n"; } } ?>