sir 사이트 rss 로 뿌려주기..
요즘 이곳에도 XML 바람이 부는군요..
예전부터 몇몇 사이트들을 긁어다가 rss로 만들어서 사용하곤 했는데 이곳 sir은 이번에 만들게 되었습니다.
요즘 XML로 정보제공을 하는 사이트들도 많아졌고..
이곳 sir도 그럴 계획이 있는지 모르지만..
그냥 제가 편하자고 만들었습니다.
sir은 로그인을 해야지만 글을 볼수 있는 게시판들이 많아서 커뮤니티의 자유게시판을 긁어다가 만들었습니다.
처음엔 소켓으로 접속해서 긁어 올려고 했는데 자꾸 이상한 게임관련 사이트가 나오더군요.
아무튼 필요하신분은 조금만 손보면 다른 사이트들도 변환할수 있을겁니다.
위의 링크 참고 하시기 바랍니다.
<?php
function html_replace($text)
{
$text=ereg_replace("&([^#])","&\\1",$text);
$text=str_replace("\"",""",$text);
$text=str_replace("<","<",$text);
$text=str_replace(">",">",$text);
return $text;
}
Header("Content-type: text/xml");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
echo"<?xml version=\"1.0\" encoding=\"ks_c_5601-1987\"?>
<!-- RSS generated by http://naraorum.com on ".date('m/d/Y; H:i:s')." -->
<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">
<channel>
<title>sir.co.kr - 자유게시판</title>
<link>http://sir.co.kr</link>
<dc:language>ko</dc:language>
";
$fp = fopen("http://sir.co.kr/index.php?doc=bbs/gnuboard.php&bo_table=talkbox", "r");
while(!feof($fp)) {
$file .= fgets($fp,1024);
}
fclose($fp);
$file = eregi_replace("^.+Hits</span></a></td>\n </tr>", "", $file);
$file = eregi_replace("</form>\n<tr>.+$", "", $file);
$data = explode("<tr align=center>", $file);
for ($i=1; $i<count($data); $i++) {
$data1 = explode("</td>", $data[$i]);
$data1[2] = trim(preg_replace("/<img(.*?)>/", "", $data1[2]));
$str[category] = trim(strip_tags($data1[1]));
$str[link] = eregi_replace("^.+<a href=\'([^\"]+)\'.+$", "\\1", $data1[2]);
$str[link] = eregi_replace("^\.\/","http://sir.co.kr/", $str[link]);
$str[link] = html_replace($str[link]);
$str[title] = eregi_replace(" |\n", "", $data1[2]);
$str[title] = trim(strip_tags($str[title]));
$str[author] = trim(strip_tags($data1[3]));
$str[author] = eregi_replace(" |\n", "", $str[author]);
$str[author] = preg_replace("/gblayer\((.*?)\);/", "", $str[author]);
$str[date] = trim(strip_tags($data1[4]));
$date = explode("-", $str[date]);
echo "<item>
<title>[$str[category]] $str[title]</title>
<link>$str[link]</link>
<category>$str[category]</category>
<dc:creator>$str[author]</dc:creator>
<dc:date>$date[2]-$date[1]-$date[0] ". date('H:i:s'). "</dc:date>
</item>
";
}
?>
</channel>
</rss>
예전부터 몇몇 사이트들을 긁어다가 rss로 만들어서 사용하곤 했는데 이곳 sir은 이번에 만들게 되었습니다.
요즘 XML로 정보제공을 하는 사이트들도 많아졌고..
이곳 sir도 그럴 계획이 있는지 모르지만..
그냥 제가 편하자고 만들었습니다.
sir은 로그인을 해야지만 글을 볼수 있는 게시판들이 많아서 커뮤니티의 자유게시판을 긁어다가 만들었습니다.
처음엔 소켓으로 접속해서 긁어 올려고 했는데 자꾸 이상한 게임관련 사이트가 나오더군요.
아무튼 필요하신분은 조금만 손보면 다른 사이트들도 변환할수 있을겁니다.
위의 링크 참고 하시기 바랍니다.
<?php
function html_replace($text)
{
$text=ereg_replace("&([^#])","&\\1",$text);
$text=str_replace("\"",""",$text);
$text=str_replace("<","<",$text);
$text=str_replace(">",">",$text);
return $text;
}
Header("Content-type: text/xml");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
echo"<?xml version=\"1.0\" encoding=\"ks_c_5601-1987\"?>
<!-- RSS generated by http://naraorum.com on ".date('m/d/Y; H:i:s')." -->
<rss version=\"2.0\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\">
<channel>
<title>sir.co.kr - 자유게시판</title>
<link>http://sir.co.kr</link>
<dc:language>ko</dc:language>
";
$fp = fopen("http://sir.co.kr/index.php?doc=bbs/gnuboard.php&bo_table=talkbox", "r");
while(!feof($fp)) {
$file .= fgets($fp,1024);
}
fclose($fp);
$file = eregi_replace("^.+Hits</span></a></td>\n </tr>", "", $file);
$file = eregi_replace("</form>\n<tr>.+$", "", $file);
$data = explode("<tr align=center>", $file);
for ($i=1; $i<count($data); $i++) {
$data1 = explode("</td>", $data[$i]);
$data1[2] = trim(preg_replace("/<img(.*?)>/", "", $data1[2]));
$str[category] = trim(strip_tags($data1[1]));
$str[link] = eregi_replace("^.+<a href=\'([^\"]+)\'.+$", "\\1", $data1[2]);
$str[link] = eregi_replace("^\.\/","http://sir.co.kr/", $str[link]);
$str[link] = html_replace($str[link]);
$str[title] = eregi_replace(" |\n", "", $data1[2]);
$str[title] = trim(strip_tags($str[title]));
$str[author] = trim(strip_tags($data1[3]));
$str[author] = eregi_replace(" |\n", "", $str[author]);
$str[author] = preg_replace("/gblayer\((.*?)\);/", "", $str[author]);
$str[date] = trim(strip_tags($data1[4]));
$date = explode("-", $str[date]);
echo "<item>
<title>[$str[category]] $str[title]</title>
<link>$str[link]</link>
<category>$str[category]</category>
<dc:creator>$str[author]</dc:creator>
<dc:date>$date[2]-$date[1]-$date[0] ". date('H:i:s'). "</dc:date>
</item>
";
}
?>
</channel>
</rss>
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 10개
나라오름님 감사합니다. 이제 소스 분석들어 갑니다. 이미 몇가지 배운거 같네요.^^
어떤 일일히 사이트를 방문해야하는 번거로움과 귀차니즘이 발동하여 만든것입니다.
그냥 저 편하자고 만든건데..
위 소스는 그누보드를 rss로 자동 변환을 해준다거나 하는게 아니라..
sir 사이트의 게시판을 rss로 제공하는 겁니다..
추후 sir 사이트의 모든 게시판에 적용되는 rss를 제공할까 합니다.
// madem
정규표현식이라 문자열마다 다르게 적용되서 에러가 나는것 같습니다.
위 소스의 정규표현식은 sir사이트의 자유게시판에 쓰이는 스킨에 최적화 된거라..
다른 스킨은 에러가 발생할수도 있습니다.
자세한 소스 알려주시면 수정해드리겠습니다.
너무 좋은 듯 합니다.
아주 실력 좋으신 분께서 이걸 게시판 스킨으로 읽을 수 있게 제작해 주셨으면 하는 바램입니다.
제로보드에선가 비베로 만들어 올리신 분을 본 듯합니다만..
와 같이 $text=str_replace("\"",""",$text); 부분에러가 나온는데, 왜그럴까요????????
http://www.sir.co.kr/?doc=bbs/gnuboard.php&bo_table=selfpds&wr_id=755
나라오름님 수고하셨습니다. (코멘트 여러번 지우고 다시 올려서 죄송합니다,)
메일링 신청 하지 않고 최신글들을 확인할수 있게 되는 점이 좋지요.