[html+php]rssをphpで読み込んでhtmlで表示させる

apiに頼ってもサービス終わったらどうしようもないので自己完結できる形をどうにかせにゃいかん。

環境

サーバー:ロリポップ

参考

【アメブロ対応】phpで外部ブログRSSを自サイトに組み込む

magpierssの準備

MagpieRSS – Browse /magpierss at SourceForge.net
とりあえず最新版をDLする。
解凍してフォルダ名を「magpierss」にリネームして任意のディレクトリに突っ込む。

.htaccessの準備

htmlファイルでphpが動くようにする。
ロリポップの管理画面で突っ込みたいドメインのphpバージョンを調べる。

AddHandler php5.6-script .htm .html

「5.6」のとこを該当の数字に変える。
他のサーバーだと違う書式だったりするらしい?のでそれでアレする。

rss出力

アメブロのを出したいからこう。

<?php
require_once("magpierss/rss_fetch.inc");

define("MAGPIE_CACHE_AGE", 60*30);
define("MAGPIE_CACHE_DIR", "/path/2/cache/");
define("MAGPIE_OUTPUT_ENCODING","UTF-8");

$url = "http://rssblog.ameba.jp/****/rss20.xml";
$rss = fetch_rss( $url );
$max_lines = 5;
$line = 0;
foreach ($rss->items as $item) {
$link = mb_convert_encoding($item['link'],"UTF-8","auto");
$title = mb_convert_encoding($item['title'],"UTF-8","auto");
$description = mb_convert_encoding($item['description'],"UTF-8","auto");
$date = date("Y/m/d", intval($item['date_timestamp']));
if (preg_match("/^PR:.+$/", $title) != 0) continue;
if ($line++ == $max_lines) break;
echo '<a href="'.$link.'">'.$title.'</a>'.$description;
echo '<li>'.$date.'<a href="'.$link.'" target="_blank" rel="noopener noreferrer">'.$title.'</a></li>';
}

?>

詳細はこちら
「magpierss/rss_fetch.inc」を放り込んだディレクトリに合わせてアレする。
「http://rssblog.ameba.jp/****/rss20.xml」を任意のそれにする。

まとめ

合ってれば動く。

コメント

タイトルとURLをコピーしました