rss 수집기 다중 수집 할려면 어떻게 수정 하면 될까요?

rss 수집기 다중 수집 할려면 어떻게 수정 하면 될까요?

QA

rss 수집기 다중 수집 할려면 어떻게 수정 하면 될까요?

본문

https://sir.kr/g5_tip/3716 

내용의 rss 불러오는 부분과 내용이 적힐 게시판테이블이 하나로만 구성되어 있는데요

한번에 다중 의 rss 주소와 게시판 테이블을 각각 적용하도록 만든다면 어디를 수정해야 할까요?

이 질문에 댓글 쓰기 :

답변 1

위 링크 팁 내용이 제대로 잘 작동한다는 가정하에 작성해 봤습니다.


<?php
header("Content-Type: text/html; charset=UTF-8");
set_time_limit(0);
define('_INDEX_', true);
include_once('./_common.php');
if(isset($_GET['rss'])){
    
    include G5_LIB_PATH."/Snoopy.class.php";
    $snoopy = new Snoopy;
    function getRss($rssURL, $table) {
        global $snoopy;
        $snoopy->fetch($rssURL); //★★ 끌어올 RSS 주소 입력 
        $table = $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->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 ;
                     /*$wrid['wr_id'] = $wrid['wr_id']+1 ;*/
                 
                }                
            }         
        }
    }
    $rss_urls = array("RSS주소1", "RSS주소2", "RSS주소3"); //계속 추가하면 됨.
    $tables = array("테이블명1", "테이블명2", "테이블명3"); //이 또한 위와 같이 추가해 줌. 위와 갯수가 같아야함.
    for($i=0; $i < sizeof($rss_urls); $i++) {
        getRss($rss_urls[$i], $tables[$i]);
    }
} else{
    echo "<a href='?rss=get'>포스팅 가져오기</a>";
}
?>
답변을 작성하시기 전에 로그인 해주세요.
전체 97
QA 내용 검색
filter #rss ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT