PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

チュートリアル: RSS フィードの作成 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

チュートリアル: RSS フィードの作成

チュートリアル: RSS フィードの作成 – XML_Serializer で RSS ニュースフィードを作成する方法

目的

このチュートリアルは、cnb 氏によって作成され http://freedomink.org/node/62 で公開されていたものです。2005 年以降このサイトにつながらなくなってしまっているので、 Internet Archive's Wayback Machine を使って復旧させました。

ここでは、ニュースフィードの XML をほんの 5 分で作成してしまう方法を解説します。 PHP、PEAR、そして Stephan Schmidt が作成した PEAR パッケージ XML_Serializer を使用します。

ニュースフィードに最低限必要な内容は "サイト名"、 "サイトの URL" としてそのサイトの "ニュースの一覧" です。 ニュースフィードを作成するために必要なのは、 これらの情報を他のサイトが理解できる形式で表現した (ウェブ) ドキュメントを公開することです。これを実現するために、 標準的な RDF Site Summary (RSS) フォーマットを使用します。 このフォーマットは多くのサイトで用いられています。

ここでの狙いは、次のようなドキュメントを作成することです。

これは "整形式の" XML ではありません。 説明用に可能な限りシンプルにした省略バージョンです。 まずは基本を理解し、それから整形式 XML の作成に進みましょう。

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF>
    <channel>
        <title>Freedom Ink</title>
        <link>http://freedomink.org/</link>
        <item>
            <item>
                <title>First Article</title>
                <link>http://freedomink.org/node/view/55</link>
                <description>Short blurb about article........</description>
            </item>
            <item>
                <title>Second Article</title>
                <link>http://freedomink.org/node/view/11</link>
                <description>This article shows you how ......</description>
            </item>
        </item>
    </channel>
</rdf:RDF>

PHP で行う

これを PHP で行う簡単な方法を説明します。

前提条件: PEAR および XML_Serializer パッケージがインストールされていること。

次のようなデフォルトオプションを、PHP ページの先頭に記述します。

<?php
require_once 'XML/Serializer.php';

$options = array(
    
"indent"    => "    ",
    
"linebreak" => "\n",
    
"typeHints" => false,
    
"addDecl"   => true,
    
"encoding"  => "UTF-8",
    
"tagName"   => "rdf:RDF",
    
"defaultTagName" => "item"
);
?>

まずは、サイト上のニュース記事一覧を含む配列を作成しましょう。

配列 $stories を作成し、ひとつの記事を追加します。

<?php
$stories
[] = array(
    
'title'       => 'First Article',
    
'link'        => 'http://freedomink.org/node/view/55',
    
'description' => 'Short blurb about article........'
);
?>

さらに別の記事を追加していく場合もやりかたは同じです。 ふつうは "for" や "foreach" のループ内で行うことになるでしょう。

<?php
$stories
[] = array(
    
'title'       => 'Second Article',
    
'link'        => 'http://freedomink.org/node/view/11',
    
'description' => 'This article shows you how ......'
);
?>

最後に、チャネルの詳細を設定してそこに記事を追加します。

<?php
$data
['channel'] = array(
    
"title" => "Freedom Ink",
    
"link"  => "http://freedomink.org/",
    
$stories
);
?>

では、PEAR の XML_Serializer パッケージで XML を作成してみましょう。

<?php
$serializer 
= new XML_Serializer($options);

if (
$serializer->serialize($data)) {
    
header('Content-type: text/xml');
    echo 
$serializer->getSerializedData();
}
?>

これだけです! このコードを含むページを訪れると、 上で見たような XML を作成して返します。

XML/RSS ファイルのパース方法については、 関連する記事を参照ください。XML/RSS ドキュメントのパースに関する最も簡単な方法が説明されています。

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「チュートリアル: RSS フィードの作成」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | チュートリアル: RSS フィードの作成」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: