ネット宮崎フリーソフト紹介
RSSviewer RSSの読み込み・整形・出力ソフト
2006/09/08 改訂
ソフトウエアの概要
RSSファイルを読み込み、整形し、HTMLの箇条書きリスト形式で出力します(本サイトのトップページのIT NEWSでも使用しています)。
出力するアイテムの種類(タイトル、日付、概要)と順序、出力数、出力文字数が設定できます。
出力される各要素には、CSSスタイルが設定されていますので、それぞれの外見はスタイルシートで設定してください。
ダウンロード
コピー&ペーストしてご利用ください。
<?php
// $strF:RSSのURL
// $strE:出力エンコード SJIS,EUC-JPなど
// $o:出力アイテム設定 [D:日付 T:タイトル S:概要] (例)"D/T/S"
// $n:出力するアイテム数 0ならすべて出力
// $ttlT:アイテムタイトルの表示バイト数 0ならすべて出力
// $descT:アイテム概要の表示バイト数 0ならすべて出力
// $dF:アイテム日付のフォーマット (例)"Y年m月d日 H時i分s秒"
// $trg:リンクターゲット NULLならターゲット指定なし
function
ParseRSS($strF, $strE="EUC-JP", $o="D/T/S", $n=0,
$ttlT=0, $descT=0, $dF="Y/m/d", $trg=NULL) {
require_once "XML/RSS.php";
$rss =& new XML_RSS( $strF );
$rss->parse();
$main = $rss->getChannelInfo();
$dF = mb_convert_encoding( $dF, 'UTF-8', $strE );
$lnktarget = ( is_null( $trg ) )? "" : 'target="'.$trg.'"' ;
// チャンネル情報
$str = '<dl class="rss_channel_info">'."\n";
$str .= '<dt><a href="' . $main['link'].'" '.
$lnktarget.'>'.$main['title'].'</a></dt>'."\n";
if( !is_null( $main['description'] ) )
$str .= '<dd>'.$main['description'].'</dd>'."\n";
$str .= '</dl>'."\n";
// アイテム情報
$str .= "<ul class=\"rss_items\">\n";
foreach ( $rss->getItems() as $item ) {
$strTitle = $item['title'];
$strDesc = $item['description'];
if( $ttlT != 0 ) $strTitle =
mb_strimwidth( $strTitle, 0, $ttlT, '..', 'UTF-8' );
if( $descT != 0 ) $strDesc =
mb_strimwidth( $strDesc, 0, $descT, '..', 'UTF-8' );
$d = date( $dF, strtotime( $item['pubdate'] ) );
$ary_o = explode( "/", $o );
foreach( $ary_o as $itm ) {
switch( $itm ) {
case "D":
$str .= '<li class="rss_items_dat">'.$d.'</li>'."\n";
break;
case "T":
$str .= '<li class="rss_items_ttl"><a href="'.$item['link'].'" '.$lnktarget.'>'.$strTitle.'</a></li>'."\n";
break;
case "S":
$str .= '<li class="rss_items_des">'.$strDesc.'</li>'."\n";
break;
}
}
if(++$count == $n) break;
}
$str .= "</ul>\n";
echo mb_convert_encoding($str, $strE, 'UTF-8');
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title></title>
<style type="text/css">
<!--
ul.rss_items {
border: 2px solid #CCCCCC; padding: 3em; list-style: none;
}
li.rss_items_dat {
font-weight: bold;
}
-->
</style>
</head>
<body>
<?php
$rssURL="http://japan.cnet.com/rss/index.rdf";
ParseRSS($rssURL,"EUC-JP","D/T",10,0,0);
?>
</body>
</html>
動作環境
PHP4 + PEAR が必要です。
ソフトウエアの解説・使用方法
HTMLファイルの中で、RSSを表示したい箇所に
ParseRSS("RSSのURL");
を入れてください。、RSSの内容が整形されて表示されます。
RSSファイルの解析、及びリスト形式での表示は、parseRSS関数で行います。
ParseRSS関数の構文は下記の通りです。
■ParseRSS( $strF, $strE="EUC-JP", $o="D/T/S", $n=0, $ttlT=0, $descT=0, $dF="Y/m/d", $trg=NULL )
| 引数 | 解説 | 初期値 | 例 |
|---|---|---|---|
| $strF | RSSのURL | なし | "http://www.***" |
| $strE | 出力エンコード | "EUC-JP" | "UTF-8","SJIS","EUC-JP" |
| $o | 出力アイテム設定 D:日付、T:タイトル、S:概要 区切りは"/"で、並び順で出力される |
"D/T/S" | "D/T/S","D/T","T/D" |
| $n | 出力するアイテム数 0ならすべて出力 |
0 | 10(ファイル先頭の10アイテムのみ表示) |
| $ttlT | アイテムタイトルの表示バイト数 0ならすべて出力 |
0 | 100(100バイトで丸められる) |
| $descT | アイテム概要の表示バイト数 0ならすべて出力 |
0 | 100(100バイトで丸められる) |
| $dF | アイテム日付のフォーマット フォーマット文字はPHPマニュアルを参照してください。 |
"Y/m/d" | "Y年m月d日 H時i分s秒" |
| $trg | リンクターゲット NULLならターゲット指定なし |
NULL | "new_win" |
外見の設定(CSSスタイルの概要)
表示の外見は、CSSで設定します。
各要素のCSSスタイル名は下記のとおりです。
チャンネル
チャンネルは、定義型リスト(DLタグ)で出力されます。
| CSSスタイル名 | 概要 |
|---|---|
| dl.rss_channel_info | チャンネル全体 (参考)チャンネルを表示しないときは{display:noe}と設定します。 |
| dl.rss_channel_info dt | チャンネルタイトル |
| dl.rss_channel_info dd | チャンネル概要 |
アイテム
アイテムは箇条書きリスト形式(ULタグ)で出力されます。
| CSSスタイル名 | 概要 |
|---|---|
| ul.rss_items | アイテム全体 |
| li.rss_items_dat | 日付 |
| li.rss_items_ttl | タイトル |
| li.rss_items_des | 概要 |

