本サイト/記事は移転しました。

約10秒後にリダイレクトします。

RSS情報取得スクリプト修正

XML_Feed_Parserあきらめたの続き。

 一部のブログではチャネル情報の日付にブログの作成日が入っている。ブログサービス会社にツッコミいれようと思ったが、調べてみるとここは必ずしも最新の更新日付を入れなくてもいいようだ。ということで、修正。

<?php
if($feed_text = file_get_contents($check_url)){
	$date_xml = NULL;
	$offset = strpos($feed_text,'<item');
	if($offset === FALSE) $offset = strpos($feed_text,'<entry>');
	if($offset === FALSE){
		$stat = "ERROR";break;
	}
	if(preg_match('/<updated>([^<]+)<\/updated>/',$feed_text,$temp,NULL,$offset)) $date_xml = $temp[1];
	if(preg_match('/<dc:date>([^<]+)<\/dc:date>/',$feed_text,$temp,NULL,$offset)) $date_xml = $temp[1];
	if(preg_match('/<pubDate>([^<]+)<\/pubDate>/',$feed_text,$temp,NULL,$offset)) $date_xml = $temp[1];
	if(preg_match('/<published>([^<]+)<\/published>/',$feed_text,$temp,NULL,$offset)) $date_xml = $temp[1];
	if(preg_match('/<date>([^<]+)<\/date>/',$feed_text,$temp,NULL,$offset)) $date_xml = $temp[1];
	if($date_xml == NULL){
		$stat = "ERROR";break;
	}
}
?>

 オプションに何もしていないときにはNULLと書いておけばよさそう。