LoginSignup
6
4

More than 3 years have passed since last update.

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

Posted at

個人開発でフィードの取得が必要になってきたので、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を取得するの結構簡単でした!!
気になったらぜひやってみてください!

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4