
読込んだRSSをサイトに出力(PHP)
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>'; ?>