SimplePie 1.5 : PHP7に対応!RSSやAtomフィードをパースするクラスライブラリ
他サイトの「RSS」や「ATOM」を読み込んで、自分のサイトに表示させたい場合に使う「SimplePie」というライブラリをよく利用しています。
(過去の「SimplePie」の紹介記事はこちらをご覧ください)
SimplePie Ver1.2は、PHP7では動かない…!
ところが、利用しているサーバーのPHPをバージョン7に切り替えたところ、「SimplePie」で読み込んでいた外部サイトの記事一覧が読み込めなくなっていて、以下のエラーを吐いておりました。
Parse error: syntax error, unexpected ‘new’ (T_NEW) in /home/****/****.com/public_html/simplepie.inc on line 738
私が使っていたバージョンは1.2で、そもそも古かったのですが…、1.3からはファイル構成も大幅に変わっていたようです。
そして、最新の1.5はPHP7にも対応しているようで、1.5にバージョンアップしたところ、難なく動作いたしました!(もしかしたら、もっと前のバージョンから対応していたのかも知れませんが…)
- SimplePie
-
RSS や Atom フィードをパースするクラスライブラリ。PHP7対応。
配布元 : SimplePie(Ver. 1.5)
使い方(Ver. 1.5)
配布元より、SimplePie(Ver. 1.5)をダウンロードします。(simplepie-1.5.zip)
解凍すると「simplepie-1.5」というフォルダが展開されるので、その中の「autoloader.php」と「library」フォルダを、新着記事を表示したい側のサイトのサーバー内へアップロードします。
※今回はキャッシュを使わないことにしましたので、「cache」フォルダはなしで。
表示させたい箇所に、以下のようなソースコードを挿入します。
<dl class="blog-new">
<?php
include('autoloader.php'); // autoloader.php を読み込む
$feed=new SimplePie; // インスタンス生成
$feed->enable_cache(false); // Cacheは行わない
$feed->set_feed_url('http://www.********.com/feed/'); // フィードしたいRSSのURL
$feed->init(); // パースを実行
$feedItems=$feed->get_items(0, 5); // 表示件数を指定(この場合5個)
foreach($feedItems as $item) {
$date = $item->get_date('(Y/m/d)'); // 各記事の日付
$title = $item->get_title(); // 各記事のタイトル
$link = $item->get_link(); // 各記事のURL
echo "<dt>$date</dt>";
echo "<dd><a href='$link' target='_blank'>$title</a></dd>";
}
?>
</dl>