【PHPライブラリ】dg/rss-phpを使った、外部サイトのrss新着情報を取得・表示する方法(autoload対応)
| 更新: 2025/06/28 | 2047文字

今回はPHPのライブラリをつかって、外部サイトのrss新着情報を取得・表示というのをやってみます。以前も当サイトではrss新着情報を取得というのを行いましたが、fetch-feed(WordPressの搭載関数)だったため、他の環境では使えませんでした。しかし今回の場合はWordPress環境以外でもOKです。さっそくやりかたを確認していきましょう。
目次
dg/rss-phpライブラリ場所やインストール方法
dg/rss-phpライブラリがあるgithubリポジトリ
composerコマンドでもインストールできるんですけど、ライブラリ単体でも利用できます。他のサイトで見たりchat-gptにきいた感じだと、『rss-php/src/Feed.php』をダウンロードしてきて、requireで読み込んでも使えるとのことです。その場合は以下のリポジトリより入手します。
dg/rss-php(githubリポジトリ)
https://github.com/dg/rss-php
composerインストール方法(autoload対応)
そのほかのインストール方法として、composerのコマンドで入れるというのがあります。こちらだと一部のファイルとかが増えますが、プログラムにautoloadを書いて呼び出しできるようになります。コマンドは以下の通り(cdでインストールしたい場所に移動してください)。
composer require dg/rss-php
管理人の環境では『The zip extension and unzip/7z commands are both missing』のようなエラーメッセがでてきたので・・・
php iniファイルで、extension=zipを有効にして、xammpでapatche再起動してからcomposer requireのコマンドを叩きました。
入ったみたいですね。
指定ディレクトリにvendorができていて、中身はこのようになります。autoloadのファイルもできました。
ライブラリ本体のパスは『vendor/dg/rss-php/src/Feed.php』となります。autoloadで呼び出すので、あまり気にしなくていい気はしますが。
dg/rss-phpを使って、外部サイトのrss新着情報を取得・表示するコード
まず、ファイルの構成、今回はこんな感じになっていて、『getRss.phpがライブラリつかって処理』『index.phpがインスタンス化して実行』のような感じになっています。またgetRss.phpのプログラムは以下のように書きました。
変数に格納してもよかったんですけど、コンストラクタ内でechoまでおこなっています(インスタンス化した段階でRSS新着リストがでます)。
ループ外で取得しているtitle・descriptionはサイトのタイトルや概要で、個別記事のものはループ内で$item->titleのように取っています。
フロントのindex.phpでは・・・
require_once 'getRss.php';
$rssUrl = 'https://division-web.atelier-ss-agency.com/feed/';
new getRssClass($rssUrl);
?>
のように、RSSのアドレス渡してインスタンス化で出力されます。上記はこのサイトのRSSになってます。
表示例
ではさっそく、表示確認をしてみましょう。
このサイト(読んどけコラム)の、日付・タイトル・カテゴリーなどの新着情報が表示されました。
なお、上記のコードでは20件でてきましたが、WP管理画面で『RSS/Atom フィードで表示する最新の投稿数:20件』に設定して、プログラム側では件数を指定していないからです。件数を指定したい場合は、RSSフィード件数を設定するか、プログラム側でループ回数を指定するなどで対応できそうです。
あとがき・まとめ
- dg/rss-phpを使って、シンプル目のコードで外部サイトのrss新着情報を取得・表示ができる
- リポジトリからダウンロードするほか、composerコマンドで入れてもoK
まとめると、こんなところでしょうか。シンプルなプログラムなんで自分で作ってもよいですけど、ライブラリでもさらにサンプルなコードにできると思います。