SimplePie v1.8.0 の導入

カテゴリー: スニペット,

急遽必要になったので久しぶりにインストールの備忘録。誰も使ってないのか検索しても全然引っかからないのでメモ的に投稿。レンタルサーバーなのでcomposer使わない手順で

インストール

https://github.com/simplepie/simplepie

PHPの必要verは7.2+。今回8.1の環境に入れたけど動いてた。
zipでダウンロードして次の2つのフォルダと1つのファイルをサーバへ上げる。同一ディレクトリだと楽ではある

  • library
  • src
  • autoloader.php

サンプルコード

<?php

require_once 'autoloader.php';

$feed = new SimplePie();

// キャッシュを有効にするなら
$feed->enable_cache(true);
$feed->set_cache_duration(3600);//単位:秒。デフォルト3600秒=1時間
$feed->set_cache_location('cache-directory');//キャッシュディレクトリを指定

// 読み込みとパースの開始。これ以降にキャッシュの設定などしても無視されるぽい
$feed->set_feed_url('https://saboten24.net/feed/');
$success = $feed->init();


if ($success) {
    $items = $feed->get_items(0, 20);// 取得件数
    $feedTitle = $feed->get_title();
    echo $feedTitle;
    foreach ($items as $item) {
        echo '<div style="margin-bottom:1em;">';
        echo '<h3>' . $item->get_title() . '</h3>';
        echo '<p>' . $item->get_description() . '</p>';
        echo '<p>' . $item->get_date('Y-m-d H:i:s') . '</p>';
        echo '<p>' . $item->get_permalink() . '</p>';
        echo '</div>';
    }
} else {
    echo '<b>Error fetching feed.</b><br>';
    echo $feed->error();
}

?>

キャッシュ機能

上記の設定だとキャッシュファイルは生成されるのを確認。キャッシュファイルって毎度タイムスタンプだけは更新されるみたいです。中身は期限がくるまで変わらない。

「set_feed_url」でURLを渡した後にキャッシュの設定を書くと無視されるみたいです。動かないのでいろいろ調べてるうち、このページの「Absolutely, totally, and completely wrong under any and all circumstances」のところを読んで、当てずっぽうにやってみたらようやくキャッシュを読むようになった、わからんよこんなん。

参考URL

SimplePie Documentation: SimplePie
https://simplepie.org/wiki/reference/simplepie/start


関連記事

関連記事はまだありません

スニペット」のBookmark
「スニペット」記事一覧