次の手順で RSS フィードを解析しています。
パーサーは 1 回実行され、すべての RSS アイテムをフェッチし、実行時間を保存します。
次に、再度実行するたびに、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;
}