いくつかのサイトで RSS や ATOM を拾って、新着情報などを掲載するシステムを作っていましたが、PHP 5.x が使えなくなりつつありますので、 PHP 7.X で動くようにしてみました
さくらインターネットさんのレンタルサーバーでも、そろそろ PHP 5.x が危なくなりそうなので、古くに使っていた MagpieRSS を PHP 7.x に対応させる必要が出てきました
収集するサイトが少なくて、応答時間などに問題ない場合は RSS を直接読んでしまえば良いのですが、簡単なポータル状のサイトで運営していますので、対象のサイトが多くて読み込み時間や応答数の問題で、キャッシュを使えるようになっている MagpieRSS をもう暫く使っていきたいと思って対処してみました
試してみたところ、split() が使えないので grep_split() へ変更し、それと、 class MagpieRSS{} のコンストラクタが クラス名と同じになっていますので警告が出ますから __construct() へ名前を変えれば良いと思います
rss_parse.inc の split() の部分をこんな感じで修正してみました
// check for a namespace, and split if found
$ns = false;
if ( strpos( $element, ':' ) ) {
// list($ns, $el) = split( ':', $element, 2);
list($ns, $el) = preg_split( ':', $element, 2);
}
それと、rss_parse.inc と、rss_cache.inc のコンストラクタの所を
class RSSCache {
var $BASE_CACHE = './cache'; // where the cache files are stored
var $MAX_AGE = 3600; // when are files stale, default one hour
var $ERROR = ""; // accumulate error messages
function __construct ($base='', $age='') {
こんな感じで修正してみました
今の所、エラーも無く、キャッシュの更新も上手く行っているようです
ところで、今回から新しいエディターを使ってみていますが、まだ慣れていないので上手く使えませんね ^^;
先に、ザット書いてしまって、後からレイアウトを修正するのが使いやすいかな?と思ってますが…