iGoogleの代わりを作る中でいがいとRSSやらATOMやらが規格に沿って書かれていないことがわかった。
当然そんなものをXMLとしてパースしようとするとエラーとなる。
そこでアドレスがRSSかそうでないかの判定としてヘッダーを見てみるとこにした。
function rsscheckheader($url)
{
streamcontextsetdefault(
array(
'http' => array(
'method' => 'HEAD'
)
)
);
$headers = getheaders($url);
return $headers;
}
function rsscheckstring($element)
{
if( preg_match( '/xml version="1.0" encoding=/i' , $element ) )
{
$result = "rss";
}
else
{
$result = "text";
}
return $result;
}
関連記事