2026, 새로운 도약을 시작합니다.

rss 읽어오기 입니다.

· 9년 전 · 348

<?php

//캐쉬기능추가
//1. 이파일과 동일한 경로에 cashe 라는 디렉토리를 생성한다.
//2. 퍼미션은 777로 준다.
$cashe_time = '10';//분단위, 숫자만
$cashe_dir = 'cashe';// /를 뺀 순수한 디렉토리명만
$cashe_file = preg_replace("`^(.*)(/[^/]+)$`", "\\1/" . $cashe_dir . "\\2", __FILE__);
if (!is_dir("./" . $cashe_dir)) {

  echo "캐쉬 디렉토리가 존재하지 않습니다.";
  exit;
}

//캐쉬 파일이 존재하고, 수정된 시간이 지정된 시간을 넘지 않았을 경우 인클루드 후 종료
if (is_file($cashe_file) && (filemtime ($cashe_file) + ($cashe_time * 60) > time())){

  include $cashe_file;
  exit;
}

ob_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Rss 읽어오기</title>
<style>
body {margin:0px 10px 3px 10px;padding:0}
body,td,select {font-family:Verdana,Gulim;font-size:9pt;}
td {overflow:hidden;text-overflow:ellipsis;}
td.description p {margin:0;padding:3 0 3 0;}
a.lnk1:link,a.lnk1:visited,a.lnk1:hover {color:#0000ff;text-decoration:underline;}
a.lnk2:link,a.lnk2:visited {color:#808080;text-decoration:none;}
a.lnk2:hover {text-decoration:underline;}
a.lnk3:link {color:#0000ff;text-decoration:none;}
a.lnk3:visited {color:#800080;text-decoration:none;}
a.lnk3:hover {text-decoration:underline;}
a.lnk4:link,a.lnk4:visited {color:#D2691E;text-decoration:none;}
a.lnk4:hover {text-decoration:underline;}
a.lnk5:link,a.lnk5:visited {color:#0000ff;text-decoration:none;}
a.lnk5:hover {background-color:#eeeeee;}
.header1 {font-weight:bold;font-size:12pt;}
.btn_submit1 {border:1px solid gray;width:40;height:20;background-color:white;font-family:Gulim;font-size:9pt;padding:2 0 0 0}
.btn_submit2 {border:1px solid #c0c0c0;width:34;height:18;background-color:white;font-family:Gulim;font-size:8pt;line-height:12pt}
</style>
<base target=_blank>
</head>
<body bgcolor='#ffffff'>
<?php

//올블로그 명예의전당 rss 글내용이 하루에 한번만 바뀝니다.
$url = "http://www.allblog.net/Rss/BestPosts.xml";

$result = file($url);
$text = implode("\n", $result);

if(!empty($text)){ 
 
  $item = explode("<item>", $text);
  $count = count($item);

  echo "
<table width=100% border=0 cellpadding=0 cellspacing=0 style=\"table-layout:fixed;\">
 <tr><td>
 <table width=100% border=0 cellpadding=0 cellspacing=0 style=\"table-layout:fixed;\">
 <tr>
 <td align=right valign=top style=\"padding:0 4 0 0;font-size:8pt;color:gray\" nowrap>총 <b>" . ($count - 1) . "</b>개&nbsp;&nbsp;|&nbsp;&nbsp;최종업데이트: " . date("Y-m-d H:i") . "</td>
 </tr>
 </table>

 </td></tr>
 <tr><td height=4></td></tr>
</table>
  ";

  if (is_array($item) && count($item) > 1) {

    for ($i = 1; $i < $count; $i++){

      preg_match_all("`<title>(.+)</title><link>(.+)</link><source url=\".+\">(.+)</source><category>([^<]+)</category>(<category>([^<]+)</category>)?(<category />)?<pubDate>(.+)</pubDate><description><!\[CDATA\[(.+)\]\]></description>`s", $item[$i], $matches);

      if (is_array($matches[1]) && count($matches[1]) > 0) {

        foreach($matches[1] as $key => $val){

          $title = (!empty($val)) ? $val : '';
          $link = (!empty($matches[2][$key])) ? $matches[2][$key] : '';
          $source = (!empty($matches[3][$key])) ? $matches[3][$key] : '';
          $category1 = (!empty($matches[4][$key])) ? $matches[4][$key] : '';
          $category2 = (!empty($matches[6][$key])) ? $matches[6][$key] : '';
          $category = (!empty($category1) && !empty($category2)) ? $category1 . ", " . $category2 : $category1 . $category2;
          $pubDate = (!empty($matches[8][$key])) ? date("Y-m-d H:i", strtotime($matches[8][$key])) : '';
          $description = (!empty($matches[9][$key])) ? $matches[9][$key] : '';
          $description_len = number_format(strlen($description));

          if (!preg_match("`(<\s*\t*img\s*\t*|<\s*\t*a\s*\t*href)`i", $description)) $description = strip_tags(str_replace(array("&lt;", "&gt;", "<br /><hr />위 내용은 올블로그가 올블로그에 등록한 블로그로부터 수집하여 서버에 저장하고 있는 내용의 전체 또는 일부 입니다. 이 게시물에 대한 모든 저작권과 책임은 해당 블로그의 등록자에게 있습니다."), array("<", ">", ""), $description)) . "<br /><hr />위 내용은 올블로그가 올블로그에 등록한 블로그로부터 수집하여 서버에 저장하고 있는 내용의 전체 또는 일부 입니다. 이 게시물에 대한 모든 저작권과 책임은 해당 블로그의 등록자에게 있습니다.";

          echo "
<a href=\"" . $link . "\"></a>
<table width=100% border=0 cellpadding=0 cellspacing=0>
<tr><td bgcolor=#bdb76b><img width=1 height=1 alt=\"\"></td></tr>
<tr><td bgcolor=#ebebd5 style='padding:5 2 6 2'>
  <table width=100% border=0 cellpadding=0 cellspacing=0>
  <tr><td style=\"font-size:10pt\"><a href=\"" . $link . "\"><span style=\"font-weight:bold\">" . $title . "</span></a></td></tr>
  </table>
</td></tr>
<tr><td style='padding:4 2 0 2'>
  <table width=100% border=0 cellpadding=0 cellspacing=0>
  <tr><td style='font-size:8pt;'> <font color=#808080>" . $pubDate . " 작성 <font color=#808080>| " . $category . "</font> <font color=#808080>| " . $description_len . "byte</font></font></td><td align=right style=\"font-family:Gulim;font-size:8pt;\" nowrap>&nbsp;</td></tr>
  </table>
</td></tr>
</table>
<table id=\"desc_9612007\" width=100% border=0 cellpadding=0 cellspacing=0>
<tr><td style='padding:6 2 0 2;line-height:14pt;' class=description>" . $description . "</td></tr>
<tr><td height=10></td></tr>
</table>
<table width=100% border=0 cellpadding=0 cellspacing=0><tr><td height=12></td></tr></table>
          ";
        }
      }
    }
  }
}

?>
</body>
</html>
<?php

$save_text = ob_get_contents();
ob_end_clean();

//캐쉬파일로 저장
$fp = @fopen($cashe_file, 'w');

if (empty($fp)) {

  echo "캐쉬 디렉토리의 퍼미션을 확인하세요";
  exit;
}

@fwrite($fp, $save_text);
@fclose($fp);
@chmod($cashe_file, 0777);

//출력
echo $save_text;

?>  

|

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

프로그램

번호 제목 글쓴이 날짜 조회
8230 9년 전 조회 18
8229 9년 전 조회 25
8228 9년 전 조회 62
8227 9년 전 조회 72
8226 9년 전 조회 115
8225 9년 전 조회 100
8224 9년 전 조회 92
8223 9년 전 조회 54
8222 9년 전 조회 126
8221 9년 전 조회 38
8220 9년 전 조회 35
8219 9년 전 조회 38
8218 9년 전 조회 73
8217 9년 전 조회 51
8216 9년 전 조회 101
8215 9년 전 조회 56
8214 9년 전 조회 175
8213 9년 전 조회 116
8212 9년 전 조회 22
8211 9년 전 조회 191
8210 9년 전 조회 181
8209 9년 전 조회 281
8208 9년 전 조회 154
8207 9년 전 조회 171
8206 9년 전 조회 127
8205 9년 전 조회 119
8204 9년 전 조회 75
8203 9년 전 조회 168
8202 9년 전 조회 97
8201 9년 전 조회 137
8200 9년 전 조회 94
8199 9년 전 조회 149
8198 9년 전 조회 123
8197 9년 전 조회 102
8196 9년 전 조회 479
8195 9년 전 조회 103
8194 9년 전 조회 238
8193 9년 전 조회 108
8192 9년 전 조회 134
8191 9년 전 조회 87
8190 9년 전 조회 83
8189 9년 전 조회 140
8188 9년 전 조회 70
8187 9년 전 조회 91
8186 9년 전 조회 101
8185 9년 전 조회 260
8184 9년 전 조회 56
8183 9년 전 조회 286
8182 9년 전 조회 115
8181 9년 전 조회 82
8180 9년 전 조회 647
8179 9년 전 조회 443
8178 9년 전 조회 248
8177 9년 전 조회 253
8176 9년 전 조회 298
8175 9년 전 조회 172
8174 9년 전 조회 178
8173 9년 전 조회 295
8172 9년 전 조회 138
8171 9년 전 조회 137
8170 9년 전 조회 245
8169 9년 전 조회 214
8168 9년 전 조회 263
8167 9년 전 조회 274
8166 9년 전 조회 188
8165 9년 전 조회 128
8164 9년 전 조회 247
8163 9년 전 조회 235
8162 9년 전 조회 244
8161 9년 전 조회 233
8160 9년 전 조회 436
8159 9년 전 조회 340
8158 9년 전 조회 162
8157 9년 전 조회 307
8156 9년 전 조회 219
8155 9년 전 조회 201
8154 9년 전 조회 541
8153 9년 전 조회 174
8152 9년 전 조회 346
8151 9년 전 조회 356
8150 9년 전 조회 445
8149 9년 전 조회 283
8148 9년 전 조회 112
8147 9년 전 조회 331
8146 9년 전 조회 386
8145 9년 전 조회 305
8144 9년 전 조회 272
8143 9년 전 조회 125
8142 9년 전 조회 377
8141 9년 전 조회 326
8140 9년 전 조회 868
8139 9년 전 조회 192
8138 9년 전 조회 339
8137 9년 전 조회 316
8136 9년 전 조회 683
8135 9년 전 조회 721
8134 9년 전 조회 437
8133 9년 전 조회 386
8132 9년 전 조회 400
8131 9년 전 조회 753
🐛 버그신고