PHPによるRSSフィードの読込と出力方法
情報発信サイトの動向を自動で取得したい!そんな時に使うのがRSS、今回は(も?)気象庁の情報をいち早く取得してみます。
RSSのURL取得と構造について
RSSの出力(feed)URLを取得します。
出典:気象庁ホームページ (http://www.jma.go.jp/jp/week/)
対象をテキストエディタで開いてみましょう。
構造はXML形式で1つの記事について「title」、「link」、「language」、「lastBuildDate」、「generator」、「docs」というタグを出力しています。
※画像が小さくて見えないのでニュースを1つだけ複写。
<item> <title>霧島山(えびの高原(硫黄山)周辺)の火口周辺警報(噴火警戒レベル2、火口周辺規制)を解除</title> <link>http://www.jma.go.jp/jma/press/1701/13b/ebinokogen170113.html?90</link> <guid>http://www.jma.go.jp/jma/press/1701/13b/ebinokogen170113.html?90</guid> <pubdate>Fri, 13 Jan 2017 14:00:00 +0900</pubdate> <dcterms:modified>2017-01-13T14:00:00+09:00</dcterms:modified> <dcterms:created>2017-01-13T14:00:00+09:00</dcterms:created> <description>< ![CDATA[「霧島山(えびの高原(硫黄山)周辺)の火口周辺警報(噴火警戒レベル2、火口周辺規制)を解除」を掲載しました。]]></description> </item>
今回はこのFEEDをPHPで読み込み、ページに出力してみます。
PHPで読み込む
上記にある通りXMLファイルには幾つもタグで管理されている情報があります、これらをタグごとに分解(パース)して用意したオブジェクトに代入していきます。
取得対象を下記とします
- title・・・タイトル
- link・・・リンク
- pubDate・・・日付
- description・・・記事詳細
PHP
PHPの関数「simplexml_load_file」を使いXML(取得したRSS)を料理します。
<?php $rssfeed = simplexml_load_file('http://www.jma-net.go.jp/rss/jma.rss'); echo '<ul id="feedOut">'; foreach($rssfeed->channel->item as $items){ $title = $items->title; $date = date("Y/n/j ", strtotime($item->pubDate)); $link = $items->link; $description = mb_strimwidth (strip_tags($items->description), 0 , 20, " …続きはこちら", "utf-8"); ?> <li> <span class="date"><?php echo $date; ?></span> <a href="<?php echo $link; ?>" target="_blank"> <span class="title"><?php echo $title; ?></span> <span class="text"><?php echo $description; ?></span> </a> </li> <?php } echo '</ul>'; ?>
出力結果
- 2021/3/1 2月の天候 …続きはこちらから
- 2021/3/1 冬(12~2月)の天候 …続きはこちらから
- 2021/3/1 霧島山(新燃岳)の噴火警戒レベルを1へ引下げ …続きはこちらから
- 2021/2/28 口永良部島の噴火警戒レベルを3へ引上げ …続きはこちらから
- 2021/2/25 2020年の日本沿岸の平均海面水位が過去最高を記録 …続きはこちらから
- 2021/2/22 令和3年2月13日23時08分頃の福島県沖の地震について(第2報)-「平成23年(2011年)東北地方太平洋沖地震」について(第90報)-」 …続きはこちらから
- 2021/2/8 令和3年1月の地震活動及び火山活動について …続きはこちらから
- 2021/2/5 南海トラフ地震関連解説情報について -最近の南海トラフ周辺の地殻活動- …続きはこちらから
- 2021/2/5 気象データの配信障害について(第3報) …続きはこちらから
- 2021/2/5 浅間山の噴火警戒レベルを1へ引下げ …続きはこちらから
- 2021/2/1 1月の天候 …続きはこちらから
- 2021/2/1 「防災気象情報の伝え方に関する検討会」(第8回)の開催について …続きはこちらから
- 2021/2/1 南海トラフ地震地域「防災・減災」シンポジウム2021三重県津市で3月6日に開催~情報と行動が命を救う東日本大震災からの教訓を活かす~ …続きはこちらから
- 2021/1/26 令和2年度「熱中症予防対策に資する効果的な情報発信に関する検討会」報告書の公表について …続きはこちらから
- 2021/1/19 口永良部島の噴火警戒レベルを2へ引下げ …続きはこちらから
- 2021/1/14 諏訪之瀬島の噴火警戒レベルを2へ引下げ …続きはこちらから
- 2021/1/12 令和2年12月の地震活動及び火山活動について …続きはこちらから
- 2021/1/11 大雪に対する国土交通省緊急発表 …続きはこちらから
- 2020/12/25 霧島山(新燃岳)の噴火警戒レベルを2へ引上げ …続きはこちらから
- 2020/12/25 市民参加による四季の生物観察の支援について …続きはこちらから
- 2020/12/23 第147回火山噴火予知連絡会~全国の火山活動の評価等について~ …続きはこちらから
- 2020/12/23 交通政策審議会気象分科会提言「気象業務における産学官連携の推進」について …続きはこちらから
- 2020/12/23 第1回「洪水及び土砂災害の予報のあり方に関する検討会」の開催について …続きはこちらから
- 2020/12/21 令和3年度気象庁関係予算決定概要 …続きはこちらから
- 2020/12/18 令和2年12月18日18時09分頃の伊豆大島近海の地震について …続きはこちらから
- 2020/12/18 気象庁と(公財)日本ライフセービング協会との「水難事故防止・防災に関する協定」の締結について …続きはこちらから
- 2020/12/18 西之島の警戒が必要な範囲を概ね2.5kmから概ね1.5kmに縮小 …続きはこちらから
- 2020/12/16 気象庁ホームページのウェブ広告掲載一時停止に係る調査結果等について …続きはこちらから
- 2020/12/15 令和2年度気象庁関係補正予算概要 …続きはこちらから
- 2020/12/14 交通政策審議会第 33 回気象分科会の開催について …続きはこちらから
- 2020/12/12 令和2年12月12日16時19分頃の岩手県沖の地震について -「平成23年(2011年)東北地方太平洋沖地震」について(第87報)- …続きはこちらから
- 2020/12/11 霧島山(新燃岳)の噴火警戒レベルを1へ引下げ …続きはこちらから
- 2020/12/8 令和2年11月の地震活動及び火山活動について …続きはこちらから
- 2020/12/8 火山噴火予知連絡会 部会の開催について …続きはこちらから
- 2020/12/7 南海トラフ地震関連解説情報について -最近の南海トラフ周辺の地殻活動- …続きはこちらから
- 2020/11/22 令和2年11月22日19時06分頃の茨城県沖の地震について -「平成23年(2011年)東北地方太平洋沖地震」について(第86報)- …続きはこちらから
- 2020/11/10 令和2年10月の地震活動及び火山活動について …続きはこちらから
- 2020/11/9 南海トラフ地震関連解説情報について -最近の南海トラフ周辺の地殻活動- …続きはこちらから
- 2020/10/10 東京都(伊豆諸島南部)に大雨特別警報を発表 …続きはこちらから
- 2020/9/30 「気象庁組織規則の一部を改正する省令」が公布 …続きはこちらから
- 2020/7/29 大雨特別警報の発表に新たな発表指標を用いる改善を実施します …続きはこちらから
- 2020/7/17 「気候変動監視レポート2019」を公表しました …続きはこちらから
- 2020/7/15 「令和2年7月豪雨」の観測記録ついて~降水量の総和と50mm以上の発生回数の記録を更新しました~ …続きはこちらから
- 2020/7/15 西之島の活発な噴火活動について~海洋気象観測船による海上からの観測を実施~ …続きはこちらから