심플파이 (Simplepie) - RSS리더
RSS를 긁어올 수 있는 오픈소스임. 설정이 간편하지만 기능은 막강함.
<?php $feed_no=7; //갯수 include_once('./sp/autoloader.php'); // 심플파이 가져오기. include_once('./sp/idn/idna_convert.class.php'); $feed2 = new SimplePie(); //객체 생성 $feed2->set_feed_url('http://feeds.feedburner.com/VLBB'); //주소 설정 if (!empty($_GET['force']) && $_GET['force'] ===== 'true') { $feed2->force_feed(true);} $success = $feed2->init(); //실행! $feed2->handle_content_type(); //처리! ?> <div class="rss_recent" > <?php if ($success): ?> <div class=" " align="center"> <h3 class="header"><?php if ($feed2->get_link()) echo '<a href="' . $feed2->get_link() . '">'; echo $feed2->get_title(); if ($feed2->get_link()) echo '</a>'; ?></h3> </div> <center> <table > <!-- Let's begin looping through each individual news item in the feed. --> <?php foreach($feed2->get_items(0,$feed_no) as $item): ?> <tr class="" > <td class="ellips" title="<?php echo $item->get_content(); //Display the item's primary content.?>"><?php if ($item->get_permalink()) echo '<a class="ellips" href="' . $item->get_permalink() . '">'; echo (mb_strlen($item->get_title(),"UTF-8")>25)?mb_substr($item->get_title(),0,25,"UTF-8").'...':$item->get_title(); if ($item->get_permalink()) echo '</a>'; ?></td><td class="footnote"><?php echo $item->get_date('j M Y, g:i a'); ?></td> </tr> <?php endforeach; ?> <?php endif; ?> </table></center> </div>
속도
좀 느린 것 같다. 피드 두개 불러오는데 1초 걸림..캐쉬도 있는데…
Magpie | Simplepie |
---|---|
Light Weight | Too Many Files. |
Simple Implementation | Complex Implemenation |
Easy to modify | Difficult to modify. |
Less time to parse | Delay in parsing. |
Less documentation but enough | Good documented. |
Cache
$feed->set_cache_location('mysql://username:password@hostname:port/database');
캐쉬 방법 | 속도 테스트 |
---|---|
flatfile | 0.658 seconds in processing this page. |
mysql | 0.149 seconds in processing this page. |
훨씬 빠른 mysql을 쓰도록 함.