rss 가져오기 소스에서 최근글만 ?
본문
안녕 하세요
이곳 팁에 공개된 아래소스를 이용해서
구글에서 글을 퍼오는데요
몇달전꺼 한참전꺼도 퍼와서 뿌려주거든요
만일 뉴스를 가져온다 치면
아베 죽은지 한참 됫는데
아베 총리 업무수행 기사를 가져와 뿌려 줍니다
웃기잔아요 ㅠㅠ
ㅡㅡㅡㅡㅡㅡㅡㅡ
그래서 예를들면
현재부터 3일전글 까지만 퍼오기
ㅡㅡㅡㅡㅡㅡㅡㅡ
이런식으로 하려면 어떻게 해야 하는지
고수님들 조언과 소스좀 알려 주십시요
부탁 드립니다
감사 합니다
<?php
define('_INDEX_', true);
include_once('./_common.php');
//ver1.0 150417 @_untitle_d
function 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'; //RSS
require "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>
답변 4
rss정보
1. 불러오는 부분 추가해주고,
$newpost = array(
'mb_id' => 'admin',
'bo_table' => $bo_table,
'wr_subject' => $item->title,
'wr_content' => $item->description,
'wr_date' => $item->pubDate
);
2. 받아서 처리하는 함수 부분에 조건식을 추가하면 됩니다.
//날짜 체크
$bo_date = strtotime($newpost[wr_date]);
if($bo_date < time() - 86400*3) continue;
두분 답변 정말 감사 합니다
그런대 두분꺼 다 에레 나네요 ㅠㅠ
죄송 합니다
한번 살펴봐 주세요
'wr_date' => $item->pubDate
이거 추가 햇고요
//게시판 테이블 정보
$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이 존재하지 않습니다.
//날짜 체크
$bo_date = strtotime($newpost[wr_date]);
if($bo_date < time() - 86400*3) continue;
//회원정보 및 권한 확인
이렇게 추가 햇습니다
eye 님 소스
http://www.newst.kr/prsstest.php
BK님 소스
http://www.newst.kr/pprsstest.php
21번째줄 에러 뜨는데
소스코드 는
$bo_date = strtotime($newpost[wr_date]);