我决定使用SimplePie来解析RSS和Atom Feeds。
我想要做的是让人们通过文本字段输入RSS和Atom Feeds URL。
如果他们放置无效的RSS和Atom Feeds会怎么样?
我知道无法通过SimplePie解析无效的Feeds。
但我想知道是否可以通过SimplePie解析Feeds。
通过该过程,我想删除那些无效的RSS提要URL列表。
检查文档类型,XML或HTML将是查找有效性的第一步。
我怎么能用PHP做到这一点?还是有其他方法可以做我想做的事情?
答案 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;
}
这解决了我遇到的基本问题。