てくのろーぐ

新卒エンジニアの日常ログ

PHPからRSSを取得する

仕事で必要になって調べたのですが、

$rss = simplexml_load_file('http://localhost:8888/tech/feed');
$item = $rss->channel->item;
$title = $item[$counter]->title;
$date = date('Y.m.d', strtotime($item[$counter]->pubDate));
$link = $item->link;
$description  = mb_strimwidth (strip_tags($item[$counter]->description), 0 , 64, "…", "utf-8");

これを回すだけで取得できます。全部取得するならforeachが楽ですね
今回はWordPressですが、XMLならちょっと変えるだけで取れると思います。

調べたこと

$rss = simplexml_load_file('http://localhost:8888/tech/feed

指定したファイルの中の整形式(XML)をオブジェクトに変換してい変数に代入
XMLの構造がそのままオブジェクトになってます

$item = $rss->channel->item;
$title = $item[$counter]->title;
$link = $item->link;

アロー演算子を使ってアクセスして

$description  = mb_strimwidth (strip_tags($item[$counter]->description), 0 , 64, "…", "utf-8");

取得した文字列からstrip_tagsでhtmlタグを除去、mb_strimwidthで文字数の制限や文字コードの指定などをしています。

これ以外にもPHPはやたら便利な関数が多い気がする。