【PHP】FC2ブログのRSSを取得してdl形式で出力

HPのパーツとして30分ぐらいで作ったもの。 このままじゃ他で使えないレベル。エラー対策皆無です。 RSSの解析にMagpieRSSと キャッシュにPearのCacheLiteを使ってます。 HTMLをなぜかolではなく、dlで組んでるのは、たしか本文の一部(items[$i]['description'])の箇所を ddで表示させようかと思ってたため。
<?php
function getrss(){
include_once('magpierss/rss_fetch.inc');
//Magpie RSS使います http://magpierss.sourceforge.net/
$rss='http://petitec.17sai.jp/feed';
//RSSのURLを指定。Magpie RSSを使ってタイトルや概要などを読み込み
if($xmlobj=@fetch_rss($rss)){
$text='';
$title='';
for($i=0;$iitems);$i++){
$text[$i]=$xmlobj->items[$i]['description'];
$title[$i]=$xmlobj->items[$i]['title'];
$link[$i]=$xmlobj->items[$i]['link'];
$date[$i]=eregi_replace('20([0-9]{2})\-([0-9]{2})\-([0-9]{2})(.+)','\1/\2/\3',$xmlobj->items[$i]['dc']['date']);
}
if($title[0]){
$code='
'; for($i=0;$i $code.="
{$date[$i]} {$title[$i]}"; } $code.='
'; }else{ $code='なんかダメでした'; } return $code; } } require_once('Cache/Lite.php'); //PEARのCahce Liteも使います。 $CacheTime=60*5; // キャッシュの保存場所とキャッシュの生存期間を指定(秒) $options = array( 'cacheDir' => 'cache/', 'lifeTime' => $CacheTime ); $Cache_Lite = new Cache_Lite($options); $id = 'blogrss'; // 指定id のキャッシュが存在するかどうか if ($data = $Cache_Lite->get($id)) { // キャッシュがあるのでキャッシュされたデータを表示 $code =$data; $mess='キャッシュ利用'; // キャッシュがなかったら本来の処理を実行 } else { $code =getrss(); $mess='キャッシュが古いか、無いので新たに取得'; // データをキャッシュする $Cache_Lite->save($code); } print $code;
これを表示させるときは、jQueryを使ったjsでAJAX読み込みしました。
 $(document).ready(function() {
         $('#blog-load').load('blog.php');
});
読込先の#blog-loadのdivは
<div id="blogload">
<a href="ブログのURL">「ブログタイトル」</a>読み込み中...
</div>
のような感じにしとくとPHPがダメだったなどの問題発生時に最低限の対応にはなって良いかなと思った。 HTMLも空divにもならないし。
Posted in PHP, プログラム by admin at 11月 8th, 2009.

Leave a Reply