Posted at

Laravelでフィードを取得する!

個人開発でフィードの取得が必要になってきたので、Laravelでフィードを取得してみます!


「awjudd/feed-reader」をcomposerでインストールする

feedを取得するために必要なやつをインストールします!

$ composer require awjudd/feed-reader


feedを取得するための設定をする



  1. config/app.phpの`providers=>'の中に以下の内容を記述します。


config/app.php

providers=> [

.
.
.

Awjudd\FeedReader\FeedReaderServiceProvider::class, // この行を追加

]



  1. 同じファイルのAriasの部分は以下の感じで記述します。


config/app.php

'aliases' => [

.
.
.
'FeedReader' => Awjudd\FeedReader\Facade::class, // この行を追加



  1. そして、以下のコマンドを実行します。

$ php artisan vendor:publish

たくさん選択肢が出てくるのですが、[1 ] Provider: Awjudd\FeedReader\FeedReaderServiceProviderを選択してください。


controllerに処理を書く


FeedController.php

use Awjudd\FeedReader\Facade as FeedReader;

.
.
.

public function feed()
{
$feed = FeedReader::read('feedのURLをここに書く');

$i = 0;
foreach ($feed->get_items() as $item) {
$articles[$i]['title'] = mb_strimwidth(trim($item->get_title()), 0, 70, "...");
$articles[$i]['permalink'] = trim($item->get_permalink());
$articles[$i]['link'] = trim($item->get_link());
$articles[$i]['date'] = $item->get_date('Y-m-d H:i:s');
$articles[$i]['content'] = mb_strimwidth(strip_tags(trim($item->get_content())), 0, 100, "...");
$i++;
}

return view('feed', compact('articles'));
}


取ってきたタイトルとかは色々加工していますが、みなさんこの辺はお好きにどうぞ。。。

ビュー上では、$articlesをforeachで回して、$article["title"]とかで取得できます!

というわけで、Laravelでfeedを取得するの結構簡単でした!!

気になったらぜひやってみてください!