ホームページ バックエンド開発 PHPチュートリアル PHP パッケージを使用して独自の RSS クライアントを作成する_PHP チュートリアル

PHP パッケージを使用して独自の RSS クライアントを作成する_PHP チュートリアル

Jul 13, 2016 am 10:38 AM
php rss 作成する バッグ クライアント 使用 プログラム 単純 重合 私自身の

RSS,也叫做真正简单聚合(Really Simple Syndication)或者RDF站点摘要(RDF Site Summary),是一个让Web网站向用户发布和聚合最新内容的文件格式。RSS的“feed”用XML来表示;这样做的结果是,它能够被任何具备分析XML文件的客户端读取。现在这样的RSS客户端软件很多,用于Windows和Linux平台的都有,最新版本的Mozilla Firefox和Internet Explorer都允许你订阅所需要的RSS feed,以保证你的手头总有最新的信息。

就像很多优秀的编程语言一样,PHP通过PEAR XML_RSS程序包对读取和创建RSS feed提供了支持。这个程序包是一个预先编译的代码库,它可以让你从RSS feed里提取信息,并把它们转换成另外一个格式(例如,MySQL数据库或者文本文件),或者如果你想要自定义创建一个能够从多个RSS源收集信息的Web页面。

在本文里,我将讲解后面一种情况,告诉你如何使用PEAR XML_RSS包,把来自多个RSS feed的新闻标题集成到一个Web页面上。我现在假设你已经安装好了一个工作正常的Apache和PHP,而且你已经成功地下载和安装了PEAR XML_RSS程序包和依赖关系。


开始吧

现在就让我们从一个简单的例子开始,它将告诉你XML_RSS是如何工作的。首先创建下面的脚本(列表A):

列表A

// include class
include ("RSS.php");

// download and parse RSS data
$rss =& new XML_RSS("http://techrepublic.com.com/5150-22-0.xml");
$rss->parse();

// print headlines
print_r($rss->getItems());
?>

在这里,脚本会读取类定义,然后实例化一个新的XML_RSS()对象。对象的构造函数用来传递元数据的URL——这在本文里就是TechRepublic的RSS feed。然后,调用parse()方法来分析XML和从中提取信息。最后,getItems()方法会返回一个结构清晰的嵌套数组,也就是从feed中提取出来的新闻项目。每一个项目都有一个标题、一段描述、一个发表日期,以及链接到完整文章的URL ,就像下面显示的输出一样(列表B):

列表B

Array
(
    [0] => Array
        (
            [title] => Bump the size of your information store to 75GB (Exchange 2003 Standard Edition only)
            [link] => http://techrepublic.com.com/5100-1035_11-6063252.html?
part=rss&tag=feed&subj=tr
            [description] => In Service Pack 2, the Exchange developers
have provided you with the ability to size the information store to any size you like between 1 and 75 GB, and they chose 18GB as the
default. Here's how to change the size yourself.
            [pubdate] => Fri, 21 Apr 2006 00:00:00 PDT
        )

    [1] => Array
        (
            [title] => Learn the pros and cons of Windows Firewall
            [link] => http://techrepublic.com.com/5100-1009_11-6063367.html?
part=rss&tag=feed&subj=tr
            [description] => Is Windows Firewall up to the task of securing your network? Mike Mullins has
his doubts. In this edition of Security Solutions, he delves into the details of Windows Firewall and weighs its pros and cons.
            [pubdate] => Thu, 20 Apr 2006 13:25:00 PDT
        )

...
)

提取关于feed本身的源信息也是可能的,把调用getItems()改成调用getChannelInfo()就可以了。正如其名字所表示的,这个方法用来返回与feed本身相关的信息,包括题目和描述(如果有的话)。下面就是它的代码(列表C):

列表C

// include class
include ("RSS.php");

// download and parse RSS data
$rss =& new XML_RSS("http://techrepublic.com.com/5150-22-0.xml");
$rss->parse();

// print channel information
print_r($rss->getChannelInfo());
?>

下面是输出结果(列表D):

列表D

Array
(
    [title] => TechRepublic.com
    [link] => http://www.techrepublic.com/
    [description] => Real World. Real Time.Real IT.
)

単一フィードを使用する

前の例で示したように、XML_RSS は RSS フィードを解析して PHP 配列に変換するという非常に優れた仕事をします。この配列が生成されたら、Web サイトでの表示に適した形式に処理するのは非常に簡単です。次の例はこれを示しています (リスト E)。

リスト



TechRepublic の最新情報:


    // include class
    include ("RSS.php");

    // RSS データをダウンロードして解析します

    $rss =& new XML_RSS("http://techrepublic.com.com/5150-22-0.xml");
    $rss->parse();
    // チャネル情報を出力します

    foreach ($rss->getItems() as $item) {
    echo "

  • " . $item['title'] . "
    ";
    echo $item['description'] . " (" . $item['pubdate'] . ")

    ";
    }
    ?>



この記事では、getItems() によって返された配列は、foreach() ループを使用して処理されます。配列の各要素はそれ自体が配列であり、要素にはニュースのタイトル、説明、発行日が含まれます。これらの要素は抽出され、並べ替えられていない HTML 要素リストにフォーマットされます。図 A は、この例を示しています:

PHP パッケージを使用して独自の RSS クライアントを作成する_PHP チュートリアル

配列要素

複数のフィードを使用する

どうして1回の餌で十分なのでしょうか?ちょっとしたクリエイティブなコードを使えば、フィードを自由に追加できます。リスト F は次のようなコードです:

リストF



// include class
include ("RSS.php");

// RSS フィードの配列を設定します

$feeds = array( "http://techrepublic.com.com/5150-22-0.xml",
"http://news.linux.com/news.rss ",
"http://rss.slashdot.org/Slashdot/slashdot");

// 各フィードを取得します

// チャンネル情報とヘッドラインを取得します
foreach ($feeds as $f) {
$rss =& new XML_RSS($f);
$rss->parse();
$info = $rss->getChannelInfo();
$items = $rss->getItems();

// チャンネル情報を出力します
?>
:




}
?>



前のサンプルコードへの変更はシンプルで明確です。さまざまなフィードへの URL の配列を作成し、オブジェクト コンストラクターで URL をフィードに固定的にリンクせずに、ループを使用して配列を処理しました。ループの各反復では、異なるソース フィードを持つ新しい XML_RSS オブジェクトが作成され、このフィードは通常の方法、つまり parse() メソッドと getItems() メソッドを呼び出すことによって処理されます。その他の改良点は、前述した getChannelInfo() メソッドの使用です。このメソッドは、各タイトル リストの先頭にフィードの名前と URL を動的に表示するために使用されます。


以下は出力結果の例です(図B):

複数の RSS フィード

PHP パッケージを使用して独自の RSS クライアントを作成する_PHP チュートリアル

もちろん、ニーズをより厳密に反映するためにこの構造を変更することもできます。たとえば、スクリプトは各フィードのすべてのニュース ヘッドラインを即座に表示します。たとえば、for() ループを使用して、2 番目のネスト レベルでカウンターを使用するだけで、各フィードの最初の 5 つのヘッドラインのみを表示するように変更できます。 。また、ページ レイアウトを再フォーマットしてドロップダウン メニューにニュースの見出しを表示し、別の種類のブラウジングを可能にすることもできます。ぜひ試してみて楽しんでください!

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/735108.html技術記事 RSS (Really Simple Syndication または RDF Site Summary とも呼ばれる) は、Web Web サイトが最新のコンテンツをユーザーに公開および集約できるようにするファイル形式です...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles