私は現在、PHPで新しいオンラインフィードリーダーを構築しています。私が取り組んでいる機能の1つは、フィードの自動検出です。<link>
ユーザーがWebサイトのURLを入力すると、スクリプトはそれがフィードではないことを検出し、HTMLを解析して適切なタグを取得することにより、実際のフィードURLを探します。
問題は、URLがフィードなのかウェブサイトなのかを現在検出している方法が一部しか機能しないことであり、それが最善の解決策ではないことを私は知っています。現在、CURL応答を取得して実行していsimplexml_load_string
ます。解析できない場合は、Webサイトとして扱います。これがコードです。
$xml = @simplexml_load_string( $site_found['content'] );
if( !$xml ) // this is a website, not a feed
{
// handle website
}
else
{
// parse feed
}
明らかに、これは理想的ではありません。また、解析可能なHTML Webサイトに遭遇すると、フィードと見なされます。
PHPでフィードと非フィードの違いを検出するための良い方法に関する提案はありますか?