【PHP】RSSフィードのXMLをJSONに変換する方法
RSSでXMLを取得して、JSON形式に変換するPHPスクリプトです。
なんかWebサービス作るときとかに便利かなと思いコード公開しておきます。
RSSフィードのXMLからJSONデータを取得するPHPスクリプト
下記のとおりです。
<?php
// RSSフィードのパス
$RSSpath = "https://manablog.org/feed";
// SimpleXMLElementとは、xmlの構文解析するクラスです
$XML = new SimpleXMLElement($RSSpath,0,true);
// XML形式データをjsonに変換
$json = json_encode($XML);
// jsonデータを表示する
echo $json;
尚、この状態でスクリプト実行すると下記の感じになります。
上記写真では、JSONを見やすくするために、JSONViewというChrome拡張機能を使っています。
JSONデータをjson_decodeして、表示するスクリプト
先ほどのスクリプトの続きです。
// jsonデータをPHPで扱える形に変換する
$json_decode = json_decode($json);
// jsonデータ内の『channel->title』部分を表示
echo $json_decode->channel->title;
echo "<br>";
// jsonデータ内の『item』部分を複数取得して、postsに格納
$posts = $json_decode->channel->item;
// postsに格納したデータをループしつつ表示する
foreach ($posts as $post) {
echo $post->title;
echo "<br>";
}
以上で完了。
コードをまとめると下記のとおりです。
<?php
// RSSフィードのパス
$RSSpath = "https://manablog.org/feed";
// SimpleXMLElementとは、xmlの構文解析するクラスです
$XML = new SimpleXMLElement($RSSpath,0,true);
// XML形式データをjsonに変換
$json = json_encode($XML);
// jsonデータを表示する
echo $json;
// jsonデータをPHPで扱える形に変換する
$json_decode = json_decode($json);
// jsonデータ内の『channel->title』部分を表示
echo $json_decode->channel->title;
echo "<br>";
// jsonデータ内の『item』部分を複数取得して、postsに格納
$posts = $json_decode->channel->item;
// postsに格納したデータをループしつつ表示する
foreach ($posts as $post) {
echo $post->title;
echo "<br>";
}
# 関連
» PHPでjson形式データを出力する – しぶてぃーぶろぐ
※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。