カテゴリー: スニペット,
急遽必要になったので久しぶりにインストールの備忘録。誰も使ってないのか検索しても全然引っかからないのでメモ的に投稿。レンタルサーバーなのでcomposer使わない手順で
https://github.com/simplepie/simplepie
PHPの必要verは7.2+。今回8.1の環境に入れたけど動いてた。
zipでダウンロードして次の2つのフォルダと1つのファイルをサーバへ上げる。同一ディレクトリだと楽ではある
<?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」のところを読んで、当てずっぽうにやってみたらようやくキャッシュを読むようになった、わからんよこんなん。
SimplePie Documentation: SimplePie
https://simplepie.org/wiki/reference/simplepie/start
関連記事はまだありません