<?php
class Rss_Display{
var $all_num;
var $title = array();
var $link = array();
var $description = array();
var $author = array();
var $category = array();
var $pubDate = array();
function Rss_Display()
{
// PEAR RSS.php読み込み
require_once("XML/RSS.php");
// RSSファイルへのURIをコンストラクタの引数に渡す
$rss = new XML_RSS("http://www.kantenna.com/info/index.xml");
// RSSファイルをパースする
$rss->parse();
/**
* getItemsメソッドを使用して全item要素を2次元配列で取得
*/
$rss = $rss->getItems();
$this->all_num = sizeof($rss);
$i=0;
for($i=0; $i<$this->all_num; $i++){
/**
* 要素ごとの処理
* @title タイトル
* @link リンク先
* @description 本文
* @author 著者
* @category カテゴリー
* @pubDate 日付
*/
$this->title[$i] = mb_convert_encoding(strip_tags($rss[$i]["title"]), $code);
$this->link[$i] = htmlspecialchars($rss[$i]["link"]);
$this->description[$i] = mb_convert_encoding(strip_tags($rss[$i]["description"]), $code);
$this->author[$i] = mb_convert_encoding(strip_tags($rss[$i]["author"]), $code);
$this->category[$i] = mb_convert_encoding(strip_tags($rss[$i]["category"]), $code);
$this->pubDate[$i] = date("Y/m/d", strtotime($rss[$i]["pubdate"]));
}
}
}
require_once("Pager/Pager.php");
// RSSフィードを取得
$rss = new Rss_Display();
// 1ページの表示件数
$perPage = 5;
// Pagerに渡すパラメータの設定
$param = array(
"perPage" => $perPage, //1ページのデータ数
"totalItems" => $rss->all_num, //総データ件数
);
// オブジェクト生成
$pager = Pager::factory($param);
// ナビゲーション取得
$navi = $pager->getLinks();
//現在ページのID
$pID = $pager->getCurrentPageID();
//開始インデックス
$index = ($pID - 1) * $perPage;
for($i=$index; $i<$index+$perPage; $i++){
echo "<dl>";
print <<< RSS
<dt class="pub">{$rss->pubDate[$i]}</dt>
<dt><a href="{$rss->link[$i]}">{$rss->title[$i]}</a></dt>
<dd>{$rss->description[$i]}</dd>
RSS;
echo "</dl>";
}
// ナビ表示
print($navi["all"]);
?>