アメブロなどのRSSを新着としてホームページに表示
前にも書きましたかね。このネタ。以前はPRを排除する内容 でしたが、実際にアメブロのRSSをPHPで表示させてみましょう。このブログのRSSを例にすると、http://feedblog.ameba.jp/rss/ameblo/j-field/rss20.xml になります。phpでこれらのxmlを利用しやすい形にパースする関数が用意されています。xml_parserからはじまる関数です。<?php// 新しいXMLパーサーを作成$parcer = xml_parcer_create();// ブログRSS$data = file_get_contents("http://feedblog.ameba.jp/rss/ameblo/j-field/rss20.xml ");// 配列になるように処理するxml_parse_into_struct($parser,$data,$vals,$index);// XMLパーサー解放xml_parser_free($parser);foreach($vals as $val){//記事タイトルif($val['tag']=="TITLE"){$title[] = $val['value'];}// 記事のURLif($val['tag']=="LINK"){$link[] = $val['value'];}// 本文if($val['tag']=="DESCRIPTION"){$description[] = strip_tags($val['value']); }// 日時if($val['tag']=="PUBDATE"){$date[] = date('Y-n-j(D)H:i:s', strtotime($val['value'])); }}echo '<dl>';/*記事だけ抽出のため$iは1から開始。そのため、日時がずれるので$dateでは$i-1とする。この辺は表示したい内容で変更。*/for($i =1; $i <= 3; $i++){// RSSに広告が含まれる場合先頭の2文字で判定する$spam = mb_strimwidth($title[$i],0,2,'','utf-8');// 訂正if($spam != "PR" or $spam != "RS"){if($spam != "PR" && $spam != "RS"){if($title[$i]){echo '<dt>'.$date[$i-1].'<a href="'.$link[$i].'">'.$title[$i].'</a></dt>';echo '<dd>'.mb_strimwidth($description[$i],0,200,'…','utf-8').'</dd>';}}}echo '</dl>';?>こんな感じ。実際に表示するサイトの文字コードによってはすこしだけ手直しが必要です。