2012-01-20 7 views
1

URLを使用してPHPを実行する方法はありますか?$string=file_get_contents($url)ここで、特定のURLがRSSフィードであるかどうかを知ることができますか?

私も潜在的な問題のフィードタイプとしてフィードFeedBurnerを処理できるようにしたいと思います...

私はこれらのフィードの発見を自動化しようとしているよ - この場合は(私は知りません物事の種類が存在する - 参考までの例は、WordPressとBloggerの標準に基づいて非常に有益です:)

+0

あなたはFeedBurnerのが同様にフィード、またはATOM特にしたいですか? –

+0

私は基本的なRSSパーサーを既に持っています。CodeIgniterを使ってRSS発見システムを自動化しようとしています – Wallter

+0

私の前のコメントで、私は特に* RSS *やATOMを意味していましたか? –

答えて

1

ベアボーン信頼性の低いテスト:

$string = file_get_contents($url); 
if (strpos($string, '<rss') !== FALSE)) { 
    ... yes, it's probably rss 
} 

より複雑なバージョンは、XMLバリデータにXML文字列(それはXMLのように見えるんと仮定)をロードし、それはRSS DTDに準拠かどうかを確認することです。より多くの仕事だけでなく、はるかに信頼性の高い。

4

あなたはそのFOT優れたSimplePieライブラリを使用することができますが、真剣に仕事を取るために(RSS、原子、バーナーを扱う):

// load the simplepie class 
require 'simplepie.php'; 
$feed = new simpepie; 

$feed->set_feed_url('your url here'); 

$feed->enable_cache(true); 
$feed->set_cache_location('cache'); 
$feed->set_cache_duration(1800); 

$feed->init(); 

//let simplepie handle the content type (atom, RSS...) 
$feed->handle_content_type(); 

if ($feed->error) 
{ 
    // not a valid rss feed/url 
    echo '<div class="box error">' . $feed->error . '</div>'; 
} 
else 
{ 
    // proceed 
} 
+0

私はすでにCodeIgniterベースのパーサーを使用しています - いずれにせよ、これは起こるのを待っている問題のようです - 実際にはRSSフィードであることを検証してから試してみてください。 – Wallter

+0

@Wallter:CIのlibがそのような機能をサポートしているかどうかを確認してください。通常、libでsimplepieとして処理する必要があります。使用しているlibのドキュメントを見る必要があります。他のオプションは、シンプルピーを使用することです、あなたはCIの内部にそれを組み込むことができるはずです。 – Sarfraz