MagpieRSS 0.7 を PHP 7.2.6 で動くようにする

この記事は公開されてから時間が経っています

いくつかのサイトで 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='') {

こんな感じで修正してみました

今の所、エラーも無く、キャッシュの更新も上手く行っているようです


ところで、今回から新しいエディターを使ってみていますが、まだ慣れていないので上手く使えませんね ^^;

先に、ザット書いてしまって、後からレイアウトを修正するのが使いやすいかな?と思ってますが…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です


The reCAPTCHA verification period has expired. Please reload the page.