2017年以前の旧ブログ

BLOG2017

PHPでRSS呼び出し

ダーシノ Other Blog

2016年12月、Google Feed API が廃止になったので、外部RSS呼び出しに利用してるサイトは呼び出しがされなくなっています。

なんだかんだで1月まで延命していたのですが、1月中旬、ついに表示がされなくなりました。

そこで急ぎ代替のプログラムを作成したので備忘録用にブログで記載します。

色々試してみましたがPHPでの呼び出しが一番簡易だったので今回はPHPで実装しました。

<?php
  $rss = simplexml_load_file("RSSのURL");
  $array = array();
  $count = 0;
  foreach ($rss->channel->item as $item) {
    $array[] = array('title'=>$item -> title,'url' => $item -> link,'date' => date('Y.m.d' , strtotime($item -> pubDate)));
    echo '<dl><dt>' . $array[$count]['date']  . '</dt><dd><a href="' . $array[$count]['url'] . '" target="_blank">' . $array[$count]['title'] . '</a></dd></dl>';
    $count++;
    if ($count == "5"){ // foreach STOP
      break;
    }
  }
?>

結論から、上記のPHPで呼び出しできました。

今回はRSS2.0ですが、RSS1.0の場合はところどころ修正すれば動きます。
また、アメブロ等の場合PR広告もありますので、そこはforeach内で処理しすれば問題ないです。

RSS呼び出しまでの参考サイトはこちら

今回は広告もなかったのでとりあえず5件表示するようにforeach途中でbreakしてますが、他の形でも対応はできると思います。

「既存サイトで動かなくなった」とかの場合だと、該当ページだけindex.php とファイル名を変更する必要あるので、結局全ページのいリンク先を変更したりと結構な作業が発生するので、一旦jsで呼び出してやれば、jsファイル差し替えだけで動作します。

よくある

<div id="feed"></div>

このパターンでサイトを制作していた時ですね。
できるだけ、js差し替えのみで拡張子や、ソースを触りたくないという方はphp内の出力箇所を同じタグで制作した上で、同じjsファイル名に、

$(function(){
  $("#feed").load("http://xxxxxx/feed.php");
})

こんな感じで呼び出してやれば、Google Feed API を利用してた時と同じ要領で実装できます。

他にもYQL(Yahoo Query Language)のAPIを利用した方法等もあるので、時間がある時に色々試していこうかと思います。