$rssurl) {
$r =& new XML_RSS($rssurl);
if (PEAR::isError($r)) continue;
$r->parse();
if ($r->getChannelInfo()) $ch[$k] = $r->getChannelInfo();
$ch[$k]['items'] = $r->getItems();
}
for ( $i = 0; $i < count( $ch ); $i++ ) {
usort($ch[ $i ][ 'items' ], "cmp");
}
$arr = array();
for ( $i = 0; $i < count( $ch ); $i++ ) {
$site_title = htmlspecialchars(mb_convert_encoding($ch[$i]['title'], DF_OUT_CODE, "UTF-8,EUC-JP,SJIS")); // サイト名
$site_link = $ch[$i]['link']; // サイトURL
$sum = count( $ch[ $i ][ 'items' ] );
$j_max = min( $sum, DF_BLOG_ARTICLE );
$tmp = "";
$tmp .= "【{$site_title}(".$sum."件中、先頭から".$j_max."件を表示します)】
";
$tmp .= "
";
$arr[] = $tmp;
for ( $j=0; $j < $j_max; $j++ ) {
// 記事タイトル
$title = mb_convert_encoding(strip_tags($ch[$i]['items'][$j]['title']), DF_OUT_CODE, "UTF-8,EUC-JP,SJIS");
// 記事内容
$desc = mb_convert_encoding(strip_tags($ch[$i]['items'][$j]['description']), DF_OUT_CODE, "UTF-8,EUC-JP,SJIS");
// 記事URL
$link = htmlspecialchars($ch[$i]['items'][$j]['link']);
// 記事更新時間(UNIXタイム
$time = (isset($ch[$i]['items'][$j]['pubdate'])) ? strtotime($ch[$i]['items'][$j]['pubdate']) : strtotime(str_replace("T", " ", substr($ch[$i]['items'][$j]['dc:date'], 0, 19)));
// 記事更新日
$date = date("Y/m/d H:i:s", $time);
// 投稿者
$creator = isset( $ch[$i]['items'][$j]['dc:creator'] )? ("[".htmlspecialchars($ch[$i]['items'][$j]['dc:creator'])."]"):"";
// 表示用に文字列の変換
$desc = str_replace( array("\"","'"), array("\\\"","\\'"), $desc );
// 表示
$tmp = "{$title} ({$date}){$creator}
";
$tmp = str_replace( array("\t","\n"), array( "\\t", "\\n" ), $tmp );
$arr[] = "- $tmp";
}
$tmp = "
";
$arr[] = $tmp;
}
$html = "";
$html .= "var html=document.getElementById(\"menu_test\");\n";
$html .= "var txt=\"新着ブログ(".DF_APPLICATION_VERSION.")
\";\n";
for ( $i = 0; $i < count( $arr ); $i++ ) {
$html .= "txt=txt+\"".$arr[ $i ]."\";\n";
}
$html .= "html.innerHTML=txt;\n";
echo $html;
// 日付ソート関数
function cmp($a, $b) {
$a = (isset($a['pubdate'])) ? strtotime($a['pubdate']) : strtotime(str_replace("T", " ", substr($a['dc:date'], 0, 19)));
$b = (isset($b['pubdate'])) ? strtotime($b['pubdate']) : strtotime(str_replace("T", " ", substr($b['dc:date'], 0, 19)));
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
// 外部ファイル読込
function read_file( $fname )
{
$arr = array();
$fp = @fopen( $fname, "r" );
if ( $fp ) {
while ( !feof( $fp ) ) {
$buffer = fgets( $fp, 4096 );
$buffer = trim( $buffer );
if ( $buffer != "" ) {
$arr[] = $buffer;
}
}
fclose( $fp );
}
return $arr;
}
?>