채택완료

언론사 rss피드 가져오기 알려주세요

2021-02-24 (수) 16:07:47 2,465

rss 주소는 http://rss.nocutnews.co.kr/news/pohang.xml

저기서 기사 이미지주소를 가져오고 싶은데 아래 코드에서 어떻게 추가하면 될까요?

그리고 기사날짜가 1970.01.01 로 나오는데 어떻게 수정하면 될까요?

Copy
<?php
    $rssdata = simplexml_load_file("http://rss.nocutnews.co.kr/news/pohang.xml");
    $num_of_data = 6;
    $outdata = "";
    for ($i=0; $i<$num_of_data; $i++){
        $entry = $rssdata->channel->item[$i];
        $date = date("Y.m.d", strtotime($entry->pubDate));
        $title = $entry->title;
        $link = $entry->link;
        $thumb = ;
        $outdata .= '<li>' . '<time>' . $date. '</time>';
        $outdata .= '<a target="_blank" href="' . $link . '">' . $thumb . '</a>';
        $outdata .= '<a target="_blank" href="' . $link . '"><p>' . $title . '</p></a></li>';
    }
        echo '<ul>' . $outdata . '</ul>';
?>
|

답변 1개 / 댓글 3개

채택된 답변
+20 포인트

이미지는

$thumb = $entry->children('media', true)->content->attributes()['url'];

이렇게 해보시고요

날짜는

원래 RSS date format 이 

Wed, 24 Feb 2021 15:48:34 +0900

이런 형식이고 strtotime에 넣으면 timestamp로 잘 변환도 하는데

rss가 날짜형식을 이상하게 줬네요

Feb 라고 줘야하는데 02 이렇게 줘서 

저걸 바꿔줘야할 것 같은데 

아님 preg_replace로 ISO 8601 date format으로 변환한후 strtotime 해야할 것 같아요

답변에 대한 댓글 3개

네 감사합니다. 이미지 잘 나옵니다 ^^
날짜가 큰일이네요 ㅠㅠ
$pubDate = preg_replace('/[A-Za-z]{3}, ([0-9]{2}) ([0-9]{2}) ([0-9]{4}) ([0-9\:]{8}) \+([0-9]{2})([0-9]{2})/', '$3-$2-$1T$4+$5:$6', $entry->pubDate);
$date = date("Y.m.d", strtotime($pubDate));
정말 갑사합니다^^

답변을 작성하려면 로그인이 필요합니다.