6

SimplePieを使用してRSSとAtomフィードを解析することにしました。

私がやりたいのは、テキストフィールドからRSSとAtomフィードのURLを入力できるようにすることです。

無効なRSSとAtomフィードを配置した場合はどうなりますか?

SimplePieでは無効なフィードが解析されないことを知っています。

しかし、フィードがSimplePieを介して解析できるかどうかを知りたいです。

そして、そのプロセスを通じて、これらの無効なRSSフィードURLリストを削除したいと思います。

ドキュメントタイプ、XMLまたはHTMLをチェックすることは、有効性を見つけるための最初のステップになります。

PHPでそれを行うにはどうすればよいですか?または私がやりたいことをする他の方法はありますか?

4

3 に答える 3

7

Simplepieがフィードを解析できるかどうかを確認するには、問題のフィードを読み込んでエラーを確認します。

$feed = new SimplePie();
$feed->set_feed_url('http://example.com/rss');
$feed->init();
$feed->handle_content_type();

if ($feed->error())
{
    // this feed has errors
}

自動検出機能を無効にして、特定のフィードURLをテストすることをお勧めします。さらに、フィードデータを自分で取得して、のset_raw_data代わりに使用することができますset_feed_url

于 2011-09-16T06:46:48.453 に答える
0

すぐに使用できる関数のようです: http ://www.sitepoint.com/forums/showthread.php?555763-Validating-an-RSS-Feed-with-PHP&p = 3865285&viewfull = 1#post3865285

だからあなたはただ電話する

$rssvalid = validateFeed("http://yourUrlHere.com");
if($rssvalid == true){
print"Yes, it´s valid!";
} else {
print"Sorry, it´s not valid!";
}
于 2011-09-16T05:20:11.903 に答える
0

これは私がやったことです。

if(strpos(file_get_contents($feed_url),'<?xml')===false) {
    //remove this $feed_url from the Feed List
    return;
}

これは私が持っていた基本的な問題を解決しました。

于 2011-09-16T06:04:50.260 に答える