rss 파싱기 실시간으로 변경하는 방법에 대해 조언을 구합니다
본문
https://sir.kr/g5_tip/3716?sfl=wr_subject%7C%7Cwr_content&stx=%EC%8A%A4%EB%88%84%ED%94%BC
위에 친절하신 sir 회원님이 rss파싱기를 올려주셔서 너무나도 잘 사용하고 있습니다.
저는 저 파싱기를 feed43으로 rss를 만들어 대학교 공지사항을 제 커뮤니티에 업로드하고 있는데요,,
다름이 아니라,
위의 파싱기는 '포스팅 가져오기'를 눌러야 대학교 공지사항들이 제 커뮤니티에 들어오게 되는데
혹시 포스팅 가져오기를 누르지 않고, 1시간이나 2시간 간격으로 자동으로 공지사항을
가져오도록 할 수는 없을까요?
학교에 물어보니 rss로 가져가는건 가져가도 된다고 허락을 해주셔서 저작권 문제는 없습니다 ㅠ
소르는 아래와 같습니다!
번거로우시겠지만 지식을 주시길 간곡히 부탁드립니다 ㅠㅠㅠ
<meta charset="utf-8">
<?php
define('_INDEX_', true);
include_once('./_common.php');
if(isset($_GET['rss'])){
include "lib/Snoopy.class.php";
$snoopy = new Snoopy;
$snoopy->fetch("rss 주소"); //★★ 끌어올 RSS 주소 입력
$table = "게시판 테이블"; //★★ 입력할 테이블 이름 입력
$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;
}
/*
$wrid=sql_fetch_array(sql_query("SELECT * FROM `g5_write_".$table."` order by `wr_id`"));
if($wrid['wr_id']==""){
$wrid['wr_id']= 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:t:s", strtotime( $str_date ) ); //Wed, 30 Sep 2015 11:48:17 +0900 => 1900-01-01 12:00:00 이런식으로
$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->title."', '".$contt."', '".$item->link."','".RAND(10,20)."', '".G5_TIME_YMDHIS."'
)";
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 ;
/*$wrid['wr_id'] = $wrid['wr_id']+1 ;*/
};
}
}
echo $msg = "총 불러온 포스팅 [".$all_data."] 건 중 DB에 [".$sec_data."] 건 입력 하였습니다. ";
echo "<br>";
echo " <a href='".G5_BBS_URL."/board.php?bo_table=".$table."'>게시판으로 가기</a>";
}else{
echo "<a href='?rss=get'>포스팅 가져오기</a>";
}
?>
!-->
답변 2
<a href='?rss=get'>포스팅 가져오기</a>";
이부분을 보시면 페이지를 호출할때
http://호출되는페이지주소?rss=get 이라고 호출하면 됩니다.
간단하게 하면
<meta http-equiv="refresh" content="리프레쉬초;url=호출될주소?rss=get">
이런식으로 하고 호출된 주소에 자기자신의 주소를 넣으면 계속 일정시간마다 가져올겁니다.
!-->
답변을 작성하시기 전에 로그인 해주세요.