RSS と Atom フィードを PHP で解析する

Olorunfemi Akinlua 2024年2月15日
  1. implode()simplexml_load_string() を使用して PHP で RSS フィードを解析する
  2. simplexml_load_file() を使用して PHP で RSS フィードを解析する
RSS と Atom フィードを PHP で解析する

RSS (Really Simple Syndication) は、JSON が API にあるのと同じように、初期のインターネット ユーザーが Web サイトの更新に同時かつ一貫して読み取り可能な形式でアクセスできるようにする人気のあるフィードでした。 ただし、RSS は最近ではほとんど普及しておらず、このフォーマットの最後の安定版リリースは 13 年前の 2009 年でした。

PHP で JSON を取得して読み取る または HTML を解析する と同様に、PHP の組み込み関数を使用して、PHP で RSS フィードを取得して解析することができます。

この記事では、PHP ライブラリーについて説明します。これには、PHP で RSS を解析するのに役立つ 2つの組み込み関数と、プロセス全体を支援する組み込み関数があります。

implode()simplexml_load_string() を使用して PHP で RSS フィードを解析する

SimpleXML ライブラリ には、XML を操作して PHP を使用して操作できるオブジェクトに変換できる関数が多数含まれています。 最初の関数は simplexml_load_string() で、PHP で RSS フィードを解析するのに役立ちます。

RSS フィードを解析する方法を理解するために、この RSS フィード The Daily by New York Times を使用して、フィード内のすべてのコンテンツの配列を取得します。

file() 関数は RSS フィードを読み取り、すべてのコンテンツの配列を返し、implode() 関数は配列のすべての要素を文字列に結合して文字列を返します。

この文字列値は simplexml_load_string() に渡されます。これは、XML の文字列をオブジェクトに解釈し、json_encode() 関数を使用してエンコードし、json_decode() 関数を使用して配列にデコードします。 と連携。

<?php

$feed = implode(file('https://feeds.simplecast.com/54nAGcIl'));
$xml = simplexml_load_string($feed);
$json = json_encode($xml);
$array = json_decode($json,TRUE);

var_dump($array);
?>

出力:

PHP で RSS フィードを解析するために implode と simplexml ロード文字列を使用する

simplexml_load_file() を使用して PHP で RSS フィードを解析する

simplexml_load_string() と同様に、関数 simplexml_load_file() は XML を解釈します。

ただし、この場合、XML 文字列ではなく XML ファイルが解釈します。 オブジェクトも返します。

どちらも同じ値を返すため、このコードでは、コードをループして、タイトル、リンク、説明、公開日から特定の値を選択します。これを前のコード スニペットに適用できます。

これを行うには、$xml の子オブジェクトであるタグ channel を使用してから、タグの孫である item[$i] を使用してアクセスできるようにします。 タイトル、リンクなどのさまざまなプロパティ (オブジェクト) に

<?php

$url = "https://feeds.simplecast.com/54nAGcIl";

$xml = simplexml_load_file($url);

for ($i = 0; $i < 2; $i++) {

    $title = $xml->channel->item[$i]->title;
    $link = $xml->channel->item[$i]->link;
    $description = $xml->channel->item[$i]->description;
    $pubDate = $xml->channel->item[$i]->pubDate;

    echo "\nThe Title: " . $title . ".\n";
    echo "\nChannel Link: " . $link . ".\n";
    echo "\nChannel Description: " . $description . ".\n";
    echo "\nDate of Publication: " . $pubDate . ".\n";
}
?>

出力:

PHP で RSS フィードを解析するために simplexml ロード ファイルを使用する

Olorunfemi Akinlua avatar Olorunfemi Akinlua avatar

Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.

LinkedIn