rss 가져오기 소스에서 최근글만 ?

rss 가져오기 소스에서 최근글만 ?

QA

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

http://blog.rss.naver.com/hosi1030.xml

여기 rss 에서 날짜정보를 제공하지 않으면 방법이 없습니다.

 

eye님

넘 열정적 으로 도움 주셧는데

이리저리 몇시간째 해봐도 잘 안되네요 ㅜㅜ

포기 해야되나 봅니다 ㅠ

 

제가 워낙 초보이다 보니

님 열정적 도움에도 부흥치 못하고

죄송 합니다 ㅠㅠ

감사 합니다

님 한번만 더 도와주세요
다른소스 인데
이건 날짜를 불러오는 코드가 잇는것 같아서
조금 수월해 보이네요

소스코드 입니다

<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>";
}
 ?>

rss정보

 

thumb-463470661_1658119724.7081_320x226.jpg

ㅠㅠ 이미지 글씨가 안보이네요 ㅠ

암튼 날짜정보 와 함께
이런식 으로 긁어 옴니다

target="_blank">[속보]확진 2만6299명 '더블링'…12주만에 월요일 최다</a>&nbsp;&nbsp;<font color="#6f6f6f">뉴시스</font></description>

<source url="https://www.newsis.com">뉴시스</source>

</item>

<item>

<title>[속보] 권성동, 장제원의 정면 비판에 “겸허히 수용” - 조선비즈 - 조선비즈</title>

<link>https://biz.chosun.com/policy/politics/2022/07/18/M7UW5O2GUBERTG3PIMJMOXT46M/</link>

<guid isPermaLink="false">CBMiTWh0dHBzOi8vYml6LmNob3N1bi5jb20vcG9saWN5L3BvbGl0aWNzLzIwMjIvMDcvMTgvTTdVVzVPMkdVQkVSVEczUElNSk1PWFQ0Nk0v0gFcaHR0cHM6Ly9iaXouY2hvc3VuLmNvbS9wb2xpY3kvcG9saXRpY3MvMjAyMi8wNy8xOC9NN1VXNU8yR1VCRVJURzNQSU1KTU9YVDQ2TS8_b3V0cHV0VHlwZT1hbXA</guid>

<pubDate>Mon, 18 Jul 2022 00:44:00 GMT</pubDate>

<description><a href="https://biz.chosun.com/policy/politics/2022/07/18/M7UW5O2GUBERTG3PIMJMOXT46M/" target="_blank">[속보] 권성동, 장제원의 정면 비판에 “겸허히 수용” - 조선비즈</a>&nbsp;&nbsp;<font color="#6f6f6f">조선비즈</font></description>

<source url="https://biz.chosun.com">조선비즈</source>

</item>

<item>

<title>[속보] 대통령실 “인하대 강간치사 사건, 비통한 일” - 조선비즈 - 조선비즈</title>

<link>https://biz.chosun.com/policy/politics/2022/07/17/3SNSNFMP2BHS7O65T4GRXEY6W4/</link>

<guid isPermaLink="

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;

 

님 정말 죄송 한데요
제가 워낙 초본라서 ㅠㅠ
//날짜 체크

$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]);

답변을 작성하시기 전에 로그인 해주세요.
전체 123,626 | RSS
QA 내용 검색

회원로그인

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