WebサイトにRSS機能を追加する

WBOY
リリース: 2016-06-20 13:05:01
オリジナル
1255 人が閲覧しました

ユーザーがサイトのコンテンツをカスタマイズしやすくするために確立されたさまざまな RSS チャネル。異なるRSSを購読する(複数のWebサイトを同時に購読可能)ことで、Webサイトにログインすることなくタイムリーなニュース情報を入手できるほか、Webページ上の無用な広告やスパム情報の干渉を避けることができます。 RSS を使用すると、訪問者の時間を大幅に節約でき、Web サイトの人間味のあるデザインのハイライトにもなり、Web サイトの品質が向上します。実際、RSS テクノロジーはそれほど難しいものではありません。Web サイトに大量の情報が含まれている場合は、このテクノロジーを自分のサイトに適用できます。

1. RSS とは

RSS は、サイト間でコンテンツ (「集約コンテンツ」とも呼ばれます) を共有する簡単な方法で、通常、ニュースやその他の連続した Web サイトに使用されます。ブログ Web サイトとして。 Web サイトは RSS 出力を提供します。これは、ユーザーが Web サイトのコンテンツの更新を見つけるのに役立ちます。 Web サイトのユーザーは、クライアント上で RSS をサポートするニュース リーダーなどのニュース アグリゲーション ツールを使用して、Web サイトのコンテンツ ページを開かずに、RSS 出力をサポートする Web サイトのコンテンツを読むことができます。

Web サイトの RSS を作成するには、まず RSS について深く理解する必要があります。 RSS は XML (Extensible Markup Language) に基づいた形式であり、すべての RSS ファイルは World Wide Web Consortium (W3C) サイトによって発行された XML 1.0 仕様に準拠する必要があります。一般に、RSS ドキュメントの最上位はルート要素としての 要素であり、現在の RSS ドキュメントのバージョンを指定するために使用されます。使用したRSSのバージョンは2.0です。 要素の下にある子要素は、Web サイトまたはコラムに関する情報とコンテンツを含む唯一の 要素です。 title>: Web サイトまたはコラムの名前。通常は Web サイトまたはコラムのページ タイトルと一致します。

: Web サイトまたはコラムの URL。 description>: Web サイトまたはセクションの簡単な説明。

特定のニュース フィードは に応じて、

などのオプションのステートメントを使用することもできます。顕現しに来てください。一般に、ニュースは であり、 の下に少なくとも 1 つの または <description> が必要です。必要に応じて他のステートメントを選択できます。 </description>

2. RSS 生成

動的 Web サイトの場合、プログラミング言語を使用して Web サイトの RSS サブスクリプション出力を自動的に生成できます。以下は、CodeIgniter フレームワークを使用して RSS 出力クラスを生成するコードです。 :

class CI_Rss
{
/**
+----------------------------------------------- - -----------
* RSS チャンネル名
+-------------------------- -- --------------------------------
* @var string
* @access protected
+ -------------------------------------------------- ------
*/
protected $channel_title = '';
/**
+---------------------------------------------- --- ------------
* RSS チャンネルリンク
+------------------------ -- ----------------------------------
* @var string
* @access protected
+- ------------------------------------------- ----- -------
*/
protected $channel_link = '';
/**
+----------------------------------------------- - -----------
* RSS チャンネルの説明
+-------------------------- -- --------------------------------
* @var string
* @access protected
+ -------------------------------------------------- ------
*/
protected $channel_description = '';
/**
+---------------------------------------------- --- ------------
* RSS チャンネルで使用される小さなアイコンの URL
+---------------- ------ ------------------------------------
* @var string
* @access protected
+----------------------------------------------------- --------- ------------
*/
protected $channel_imgurl = '';
/**
+----------------------------------------------- - -----------
* RSS チャネルで使用される言語
+------------------------ -- --------------------------------
* @var string
* @access protected
+ ------------------------------------------------ -- --------
*/
protected $ language = 'zh_CN';
/**
+----------------------------------------------- - -----------
* RSS ドキュメントの作成日、デフォルトは今日です
+---------------------- - -----------------------------------
* @var string
* @access protected
+------------------------------------------ -- ----------
*/
protected $pubDate = '';
protected $lastBuildDate = '';
protected $generator = 'SCutePHP RSS Generator';
/**
+----------------------------------------------- - -----------
* RSS 単一メッセージの配列
+----------------------- - ---------------------------------
* @var string
* @access protected
+------------------------------------------------ ----------
*/
protected $items = array();
/**
+---------------------------------------------- --- ------------
* コンストラクター
+-------------------------- -- ----------------------------------
* @access public
+--- ------ -------------------------------------------- ------
* @param string $title RSS チャネル名
* @param string $link RSS チャネル リンク
* @param string $description RSS チャネルの説明
* @param string $ imgurl RSS チャンネルアイコン
+------------------------------------------ ------- ----------
*/
public function __construct($par = array())
{
$this->channel_title = $par [0];
$this->channel_link = $par[1];
$this->channel_description = $par[2];
$this->channel_imgurl = $par[3 ];
$this->pubDate = Date('Y-m-d H:i:s', time());
$this->lastBuildDate = Date('Y-m-d H:i:s', time ());
}
/**
+----------------------------------------------- - -----------
* プライベート変数を設定します
+-------------------------- -- ------------------------
* @access public
+------ -------------------------------------------------- -
* @param string $key 変数名
* @param string $value 変数値
+---------------------- ----------------------------------
*/
public function Config($key,$value)
{
$this->{$key} = $ value;
}
/**
+----------------------------------------------- - -----------
* RSS アイテムを追加
+-------------------------- -- ------------------------
* @access public
+------ -------------------------------------------------- -
* @param string $title ログのタイトル
* @param string $link ログのリンク
* @param string $description ログの概要
* @param string $pubDate ログの公開日
+-------------------------------------- ------------ ----------
*/
function AddItem($title, $link, $description, $pubDate)
{
$this->items[] = array('title' => $title, 'link' => $link, 'description' => $description, 'pubDate' => $pubDate);
}
/**
+---------------------------------------------- --- ------------
* RSS XML を文字列
として出力 +---------------------- - ----------------------------------
* @access public
+---- -------------------------------------------------- ----
* @return string
+------------------------------------- ------------------------
*/
public function Fetch()
{
$rss = ' $rss .= ''."rn";
$rss .= '<チャンネル>'."rn";
$rss .= '<![CDATA['.$this->channel_title.']]>'."rn";
$rss .= ' channel_description.']]>'."rn";
$rss .= ''.$ this->channel_link.''."rn";
$rss .= ''.$this->言語.''."rn" ;
if (!empty($this->pubDate))
$rss .= ''.$this->pubDate.''."rn";
if (!empty($this->lastBuildDate))
$rss .= ''.$this->lastBuildDate.''."rn";
if (!empty($this->generator))
$rss .= ''.$this->generator.''."rn";
$rss .= '5'."rn";
if (!empty($this->channel_imgurl)) {
$rss .= ' '."rn";
$rss .= '<![CDATA['.$this->channel_title.']]>'."rn";
$rss .= ''.$this->channel_link.''."rn";
$rss .= ''.$this-> ;channel_imgurl.''."rn";
$rss .= ''."rn";
}
for ($i = 0; $i items); $i++) {
$rss .= ''."rn";
$rss .= '<![CDATA['.$this->items[$ i]['title'].']]>'."rn";
$rss .= ''.$this->items[$i][' link'].''."rn";
$rss .= 'items[$i]['description' ].']]>'."rn";
$rss .= ''.$this->items[$i]['pubDate'].'< ;/pubDate>'."rn";;
$rss .= '
'."rn";
}
$rss .= ''." rn".'
';
return $rss;
}
/**
+----------------------------------------------- - -----------
* RSS XML をブラウザに出力
+---------------------- -- --------------------------------
* @access public
+---- --- ---------------------------------------------- --- -
* @return void
+----------------------------------- --- --------------------
*/
public function Display()
{
header( 'Content-Type: text/xml; ');
echo $this->Fetch();
exit;
}
}


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート