Copy & Paste Engineer

【PHP】RSSを取得・解析する

RSSを取得、解析する

PHPを使用して RSS を解析します。 RSSの取得先ははてなブックマーク を使用しています。

RSS取得

RSS の XML を取得して PHP の配列にするだけの処理です。

<?php
// URL
$url = "http://b.hatena.ne.jp/search/tag?q=プログラミング&sort=popular&mode=rss";

// RSS(XML)を取得
$rss = simplexml_load_file($url);

// 一度JSONを経由してPHPの配列化
$json = json_decode(json_encode($rss), true);
var_dump($json);

これだけで可能です。 ただ注意が必要で取得したものが1つだけの場合、配列化する際に $json['item']['title'] になってしまいます。 これに複数ある場合は $json['item'][0]['title'] のようになります。

メソッド化、関数化する際に以下のようにすれば統一された形になります。

<?php
// URL
$url = "http://b.hatena.ne.jp/search/tag?q=プログラミング&sort=popular&mode=rss";

// RSS(XML)を取得
$rss = simplexml_load_file($url);

// 一度JSONを経由してPHPの配列化
$json = json_decode(json_encode($rss), true);

if(!is_null($json['item']['title'] ?? null)){
    // 1件のみの場合は配列化
    $json['item'] = [0 => $json['item']];
}

var_dump($json);

参考