PHP Universal Feed GeneratorでRSSを作成する

こんにちは、斉藤です。

昨日、支笏湖で行われている氷濤まつりに行ってきたのですが、

もう寒いのなんので体感気温-30度くらいはあったかと思います。

やっぱり水辺は通常の何倍も寒いことを再認識いたしました。。凍りました。。

でも花火は綺麗でした。グッド。

さて、ブログを新しくしたこともあり、RSSを作成するのに色々調べたことを書いておこうと思います。

 

下記サイトを参考にいたしました。

PHPでRSS、AtomのFeedを作成する方法

 

まずはライブラリの入手です。

下記からダウンロードいたします。

PHP Universal Feed Generator

 

今回はRSS2.0でクラスで作成してみました。


// ライブラリの読み込み
require_once "Item.php" ;
require_once "Feed.php" ;
require_once "RSS2.php" ;

use FeedWriter\RSS2;    // エイリアスの作成

class makeRss {
    
    public function makeRssXml($ary){
        // デフォルトのタイムゾーンをセット
        date_default_timezone_set( "Asia/Tokyo" ) ;

        $feed = new RSS2;

        // チャンネル情報の登録
        $feed->setTitle( "GSblog | 株式会社 月虹製作" ) ;    // チャンネル名
        $feed->setLink( "https://www.gekkoseisaku.com/blog/" ) ;    // URLアドレス
        $feed->setDescription( "web制作会社の株式会社 月虹製作が運営するブログです。ほげほげ〜" );    // チャンネル紹介テキスト
        $feed->setDate( date( DATE_RSS , time() ) ) ;    // フィードの更新時刻
        $feed->setChannelElement( "language" , "ja-JP" ) ;    // 言語
        $feed->setChannelElement( "pubDate" , date( \DATE_RSS , time() ) ) ;    // フィードの変更時刻

        foreach($ary as $key => $val){
            // インスタンスの作成
            $item = $feed->createNewItem() ;
            
            // アイテムの情報
            $item->setTitle( $val->title ) ;    // タイトル
            $item->setLink( "https://www.gekkoseisaku.com/".$val->url ) ;    // リンク   
            $item->setDescription( $val->body ) ;    // 紹介テキスト
            $item->setDate( strtotime($val->time) ) ;    // 更新日時
            
            // アイテムの追加
            $feed->addItem( $item ) ;
        }

        // コードの生成
        $xml = $feed->generateFeed() ;
        
        // ファイルの保存場所を設定
        $file = "/feed/blog_feed.xml" ;
        
        // ファイルの保存を実行
        file_put_contents( $file , $xml ) ;    
    }
}

 

ブログ更新時に上記をやるようにして完成です。

思ったより簡単にできました。