RSS수집 중복글은 빼고 불러오는 방법좀 알려주세요 채택완료
테스트로 제 블로그의 글을 게시판에 RSS수집으로 불러왔습니다
질문1. 블로그에 게시글이 써지면 자동으로 RSS로 수집해와서 그누5게시판에 써지게 하는방법
질문2. 수동으로 RSS불러오면 그전에 불러왔던 게시글은 빼고 새로운 게시글만 불러오게 하는방법
* RSS수집을 할때마다 모든게시물을 불러오네요 ㅜㅜ
Copy
<?phpdefine('_INDEX_', true);include_once('./_common.php');//ver1.0 150417 @_untitle_dfunction insert_write($newpost){ global $g5; //게시판 테이블 정보 $bo_table = $newpost[bo_table]; if(!strlen($bo_table)) return FALSE; //bo_table 값이 지정되지 않았습니다. $board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' "); if(!$board) return FALSE; //bo_table이 존재하지 않습니다. //회원정보 및 권한 확인 $member = get_member($newpost[mb_id]); if(!$member) return FALSE; //mb_id가 존재하지 않습니다. //if($board[bo_write_level] > $member[mb_level]) return FALSE; //글쓰기 권한이 없습니다. //카테고리 설정 $ca_name = $newpost[ca_name]; if ($ca_name && strpos($board[bo_category_list], $ca_name) === FALSE){ $category_list = $board[bo_category_list]."|".$ca_name; $sql = " update {$g5['board_table']} set bo_category_list = '$category_list' where bo_table = '$bo_table' "; sql_query($sql); } //변수 정리 $write_table = $g5[write_prefix].$bo_table; $wr_num = get_next_num($write_table); $ca_name = addslashes($ca_name); $html = "html1"; $secret = ""; $mail = ""; $wr_subject = addslashes(trim($newpost[wr_subject])); $wr_content = addslashes(trim($newpost[wr_content])); if(!$wr_subject) return FALSE; //글 제목이 없습니다. if(!$wr_content) return FALSE; //글 내용이 없습니다. $mb_id = $member[mb_id]; $wr_password = $member[mb_password]; $wr_name = $board[bo_use_name] ? $member[mb_name] : $member[mb_nick]; $wr_email = $member[mb_email]; $wr_homepage = $member[mb_homepage]; for($i=1; $i<=10; $i++){ $wr = "wr_{$i}"; ${$wr} = addslashes($newpost[$wr]); } $wr_link1 = $newpost[wr_link1]; $wr_link2 = $newpost[wr_link2]; //글 입력하기 $sql = " insert into $write_table set wr_num = '$wr_num', wr_reply = '', wr_comment = 0, ca_name = '$ca_name', wr_option = '$html,$secret,$mail', wr_subject = '$wr_subject', wr_content = '$wr_content', wr_link1 = '$wr_link1', wr_link2 = '$wr_link2', wr_link1_hit = 0, wr_link2_hit = 0, wr_hit = 0, wr_good = 0, wr_nogood = 0, mb_id = '$mb_id', wr_password = '$wr_password', wr_name = '$wr_name', wr_email = '$wr_email', wr_homepage = '$wr_homepage', wr_datetime = '".G5_TIME_YMDHIS."', wr_last = '".G5_TIME_YMDHIS."', wr_ip = '{$_SERVER['REMOTE_ADDR']}', wr_1 = '$wr_1', wr_2 = '$wr_2', wr_3 = '$wr_3', wr_4 = '$wr_4', wr_5 = '$wr_5', wr_6 = '$wr_6', wr_7 = '$wr_7', wr_8 = '$wr_8', wr_9 = '$wr_9', wr_10 = '$wr_10' "; sql_query($sql); $wr_id = mysql_insert_id(); sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' "); //부모 아이디에 UPDATE sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '$mb_id' ) "); //새글 INSERT sql_query(" update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}' "); //게시글 1 증가 //return array('bo_table' => $bo_table, 'wr_id' => $wr_id, 'sca' => $ca_name); return TRUE; }$bo_table = 'blog'; //게시판 테이블$write_table = $g5[write_prefix].$bo_table;$url = 'http://blog.rss.naver.com/hosi1030.xml'; //RSSrequire "lib/Snoopy.class.php"; ini_set("allow_url_fopen","1");$snoopy = new Snoopy; $snoopy->fetch($url);$xml = @simplexml_load_string($snoopy->results);foreach($xml->channel->item as $item) { $sql = "select count(*) as cnt from $write_table where wr_link1 = '".$item->link."' and wr_is_comment = 0"; $row = sql_fetch($sql); if ($row['cnt'] == 0){ $newpost = array( 'mb_id' => 'admin', 'bo_table' => $bo_table, 'wr_subject' => $item->title, 'wr_content' => $item->description, ); insert_write($newpost); } }?><a href="<?=G5_BBS_URL?>/board.php?bo_table=<?=$bo_table?>">결과보기</a>
답변 1개
채택된 답변
+20 포인트
사노라가노라
10년 전
위에서 122행
where wr_link1 = '".$item->link."'
↓
where wr_subject = '".$item->title."'
변경 후 테스트 해 보세요.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
10년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
늦은시간까지 고생하다 마음편히 잘수 있겠습니다 ^^