检查有效的RSS提要URL

时间:2011-09-16 05:11:01

标签: php validation rss simplepie

我决定使用SimplePie来解析RSS和Atom Feeds。

我想要做的是让人们通过文本字段输入RSS和Atom Feeds URL。

如果他们放置无效的RSS和Atom Feeds会怎么样?

我知道无法通过SimplePie解析无效的Feeds。

但我想知道是否可以通过SimplePie解析Feeds。

通过该过程,我想删除那些无效的RSS提要URL列表。

检查文档类型,XML或HTML将是查找有效性的第一步。

我怎么能用PHP做到这一点?还是有其他方法可以做我想做的事情?

3 个答案:

答案 0 :(得分:7)

要检查Simplepie是否能够解析Feed,您只需加载有问题的Feed并检查错误:

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

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

您可能希望禁用自动发现功能以测试特定的供稿网址。此外,您可以自行查询Feed数据,并使用set_raw_data代替set_feed_url

答案 1 :(得分: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!";
}

答案 2 :(得分:0)

这就是我所做的。

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

这解决了我遇到的基本问题。