Atom
ここからは、それぞれの種類別に、フィードを作成していく方法を紹介します。Atomから、いきましょう。まずは、Atom Feed用のライブラリを読み込み、インスタンスを作成します。
PHP
<?php
// ライブラリの読み込み
require_once "./Item.php" ;
require_once "./Feed.php" ;
require_once "./ATOM.php" ;
// デフォルトのタイムゾーンをセット
date_default_timezone_set( "Asia/Tokyo" ) ;
use \FeedWriter\ATOM ; // エイリアスの作成
$feed = new ATOM ;
準備が完了したら、まずはチャンネル情報を下記メソッドを利用して登録します。
PHP
// チャンネル情報の登録
$feed->setTitle( "SYNCER" ) ; // チャンネル名
$feed->setLink( "https://syncer.jp" ) ; // URLアドレス
$feed->setDate( new DateTime() ) ; // 日付 (変更不要)
続いて、記事の分だけ、フィードのアイテムを登録していきます。1つのアイテムを登録する手順は下記の通りです。この一連の手順を、ループ処理して下さい。
PHP
// インスタンスの作成
$item = $feed->createNewItem() ;
// アイテムの情報
$item->setTitle( "PHPでRSS、AtomのFeedを作成する方法" ) ; // タイトル
$item->setLink( "https://syncer.jp/how-to-make-feed-by-php" ) ; // リンク
$item->setDate( strtotime( "2014-11-23 18:30" ) ) ; // 更新日時
$item->setAuthor( "Yuta Arai" ) ; // 著者名
$item->setDescription( "PHPを使って、RSS、Atomのフィード・ファイルを作成する方法を解説します。" ) ; //紹介テキスト
// $item->setContent( "<h1>PHPでRSS、AtomのFeedを作成する方法</h1><p>PHPを使って、RSS、Atomのフィード・ファイルを作成する方法を解説します。</p>" ) ; // HTMLコンテンツ
// $item->setEnclosure( "...ogg" , 11779 , "audio/ogg" ) ; // 添付ファイル
// アイテムの追加
$feed->addItem( $item ) ;
全ての記事の登録が終わったら、最後に、ファイルを作成しましょう。これで、フィードのファイルを作成することができました。
PHP
// コードの生成
$xml = $feed->generateFeed() ;
// ファイルの保存場所を設定
$file = "/var/www/syncer.jp/feed/atom.xml" ;
// ファイルの保存を実行
@file_put_contents( $file , $xml ) ;
RSS1.0
続いて、RSS1.0のフィードを作成していきましょう。作成方法は基本的にAtomの時と同じですが、登録する項目に違いがあります。まずはライブラリを読み込みます。
PHP
<?php
// ライブラリの読み込み
require_once "./Item.php" ;
require_once "./Feed.php" ;
require_once "./RSS1.php" ;
// デフォルトのタイムゾーンをセット
date_default_timezone_set( "Asia/Tokyo" ) ;
use \FeedWriter\RSS1 ; // エイリアスの作成
$feed = new RSS1 ; // インスタンスの作成
続いて、チャンネル情報を設定します。RSS1.0では、ウェブサイトの紹介ページへのリンクを指定する必要があります。
PHP
// チャンネル情報の登録
$feed->setTitle( "SYNCER" ) ; // チャンネル名
$feed->setLink( "https://syncer.jp" ) ; // URLアドレス
$feed->setDescription( "知識と感動を同期(Sync)するブログ" ) ; // チャンネル紹介テキスト
$feed->setChannelAbout( "https://syncer.jp/about" ) ; // ブログのアバウト・ページ
続いて、アイテムを登録していきます。基本的に登録する項目は4種類ですが、addElement()
メソッドを利用することで、オプションとなる項目を追加することができます。第1引数に項目、第2引数に値を指定して下さい。この処理を、アイテムの数だけ繰り返します。RSS1.0では15記事までくらいがいいとされています。
PHP
// インスタンスの作成
$item = $feed->createNewItem() ;
// アイテムの情報
$item->setTitle( "PHPでRSS、AtomのFeedを作成する方法" ) ; // タイトル
$item->setLink( "https://syncer.jp/how-to-make-feed-by-php" ) ; // リンク
$item->setDate( strtotime( "2014-11-23 18:30" ) ) ; // 更新日時
$item->setDescription( "PHPを使って、RSS、Atomのフィード・ファイルを作成する方法を解説します。" ) ; // 紹介テキスト
// $item->addElement( "dc:subject" , "ここの値を指定" ) ; // オプションとなる項目
// アイテムの追加
$feed->addItem( $item ) ;
アイテムの追加処理が完了したら、一番最後に、ファイルを作成します。
PHP
// コードの生成
$xml = $feed->generateFeed() ;
// ファイルの保存場所を設定
$file = "/var/www/syncer.jp/feed/rss1.xml" ;
// ファイルの保存を実行
@file_put_contents( $file , $xml ) ;
RSS2.0
最後に、RSS2.0の仕様に従ったフィードを作成してみましょう。準備となる処理は下記の通りです。
PHP
<?php
// ライブラリの読み込み
require_once "./Item.php" ;
require_once "./Feed.php" ;
require_once "./RSS2.php" ;
// デフォルトのタイムゾーンをセット
date_default_timezone_set( "Asia/Tokyo" ) ;
use \FeedWriter\RSS2 ; // エイリアスの作成
$feed = new RSS2 ;
続いて、チャンネル情報を設定します。RSS2.0では、チャンネル情報に様々な項目を指定することができます。setChannelElement()
メソッドを利用して、第1引数に項目、第2引数に値を指定することができます。
PHP
// チャンネル情報の登録
$feed->setTitle( "SYNCER" ) ; // チャンネル名
$feed->setLink( "https://syncer.jp" ) ; // URLアドレス
$feed->setDescription( "知識と感動を同期(Sync)するブログ" ) ; // チャンネル紹介テキスト
$feed->setImage( "Syncer" , "https://syncer.jp" , "https://syncer.jp/images/DHFgXv5Rfe4d1Lej1lnQfuffZtzsj/assets/logo/490x196.png" ) ; // ロゴなどの画像
$feed->setDate( date( DATE_RSS , time() ) ) ; // フィードの更新時刻
$feed->setChannelElement( "language" , "ja-JP" ) ; // 言語
$feed->setChannelElement( "pubDate" , date( \DATE_RSS , strtotime("2014-11-23 15:30") ) ) ; // フィードの変更時刻
$feed->setChannelElement( "category" , "Blog" ) ; // カテゴリー
続いて、アイテムを登録していきます。基本的に登録する項目は4種類ですが、addElement()
メソッドを利用することで、オプションとなる項目を追加することができます。第1引数に項目、第2引数に値を指定して下さい。この処理を、アイテムの数だけ繰り返します。RSS1.0では15記事までくらいがいいとされています。
PHP
// インスタンスの作成
$item = $feed->createNewItem() ;
// アイテムの情報
$item->setTitle( "PHPでRSS、AtomのFeedを作成する方法" ) ; // タイトル
$item->setLink( "https://syncer.jp/how-to-make-feed-by-php" ) ; // リンク
$item->setDescription( "PHPを使って、RSS、Atomのフィード・ファイルを作成する方法を解説します。" ) ; // 紹介テキスト
$item->setDate( strtotime("2014-11-23 18:30") ) ; // 更新日時
//$item->setAuthor( "あらゆ" , "info@syncer.jp" ) ; // 著者の連絡先(E-mail)
$item->setId( "https://syncer.jp/how-to-make-feed-by-php" , true ) ; // 一意のID(第1引数にURLアドレス、第2引数にtrueで通常は大丈夫)
// アイテムの追加
$feed->addItem( $item ) ;
アイテムの追加処理が完了したら、一番最後に、ファイルを作成します。
PHP
// コードの生成
$xml = $feed->generateFeed() ;
// ファイルの保存場所を設定
$file = "/var/www/syncer.jp/feed/rss2.xml" ;
// ファイルの保存を実行
@file_put_contents( $file , $xml ) ;