0

次の手順で RSS フィードを解析しています。

  1. パーサーは 1 回実行され、すべての RSS アイテムをフェッチし、実行時間を保存します。

  2. 次に、再度実行するたびに、RSS アイテムが pubDate前回の実行よりも新しいかどうかを確認し、データベースに保存します。

私の問題は、特定のウェブサイトのフィードの場合、いくつかの項目が最後の項目の後に追加されますが、同じpubDateであるために、パーサーがそれらを保存しないことです。

たとえば、午後 9 時に の 1 つのアイテムが<pubDate>Fri, 01 Mar 2013 05:00:00 Z</pubDate> あり、午後 12 時に同じ の別のアイテムが追加されますpubDate

フィードは提供していませんguid

実際の最新アイテムを入手する方法はありますか?

ここで私が今使っているコード

function getLatest($lastTimeRun, $data, $pubDates)
{
    $latestData = array();
    for($i=0;$i<sizeof($data);$i++)
    {
        $pubDates[$i] = strtotime($pubDates[$i]);
        //compare the last time the script run with each feed's item publish date                
        if($lastTimeRun < $pubDates[$i])
        {
            array_push($latestData, $data[$i]);
        }
    }

    return $latestData;
}
4

1 に答える 1

1

最後の公開日の後の最後の x のタイトルを単純に比較して、新しいエントリを見つけ、他のデータと照合して、それ本当に新しいエントリかどうかを確認します。次に、探している最後の xx エントリを制限します。

于 2013-03-01T10:50:48.810 に答える