2011-09-16 10 views
5

SimplePieを使用してRSSフィードとAtomフィードを解析することにしました。有効なRSSフィードURLを確認する

私がしたいことは、人々がテキストフィールドを使ってRSSとAtom Feeds URLを入力できるようにすることです。

どうすれば無効なRSSフィードとAtomフィードを挿入できますか?

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

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

そのプロセスを通じて、無効なR​​SSフィードURLリストを削除したいと考えています。

有効性を確認するには、文書の種類、XMLまたはHTMLを確認する必要があります。

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

+0

あなたはどちらのバージョンのSimplepieを使用していますか? – hakre

+0

@hakre ver 1.2を使用しています – InspiredJW

答えて

6

は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_feed_urlの代わりにset_raw_dataを使用することもできます。

+1

Gracias !!!!! :) – InspiredJW

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!"; 
} 
+0

私はこれを試しました..問題は、このvalidateFeed関数がFeedの有効性を厳密に調べていることです。 validateFeedはそれが無効であると言っても、シンプルピーを使っていくつかのフィードを解析することができます。 – InspiredJW

0

を呼び出します。

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

この解決された基本的な問題私が持っていたもの。

関連する問題