magpierssの文字化けと日付表示を直す
magpierssをダウンロードしてそのまま使うと文字化けすることがある。
その対応としては、rss_fetch.incの357-359行目を
if ( !defined('MAGPIE_OUTPUT_ENCODING') ) { define('MAGPIE_OUTPUT_ENCODING', 'ISO-8859-1'); }
から
if ( !defined('MAGPIE_OUTPUT_ENCODING') ) { define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); }
とする。
さらに、ブログ(xml, rss1, rss2, etc?)によって日付の取り方が違う。
$item['dc']['date'] ([date] => 2011-06-21T11:10:05+09:00とか)で返すのもあれば、$item['date_timestamp']( [date_timestamp] => 1322093729 とか)で返すものもある。
どっちでも対応できるように、
$rss = fetch_rss($url); foreach ($rss->items as $item ) { $title = $item['title']; $summary = $item['summary']; $url = $item['link']; $timestamp = $item['date_timestamp']; if($timestamp == '') $timestamp = strtotime($item['dc']['date']); $summary = mb_substr(strip_tags($summary), 0, 200); echo '<a href="'.$url.'">'.$title.'</a> '.date('Y年n月j日', $timestamp).'<br>'.($summary).'</li><br>'; }
とすると、型に関わらず投稿日時が取得できる。