开发者

Checking Valid RSS feed URL

开发者 https://www.devze.com 2023-04-05 01:46 出处:网络
I have decided to use SimplePie to parse RSS and Atom Feeds. What I want to do is that let people to input RSS and Atom Feeds URL through text fields.

I have decided to use SimplePie to parse RSS and Atom Feeds.

What I want to do is that let people to input RSS and Atom Feeds URL through text fields.

What If they put invalid RSS and Atom Feeds?

I know that invalid Feeds won't be parsed through SimplePie.

But I want to know whether the Feeds are able to be parsed through SimplePie or not.

And through that process, I want to delete those invalid RSS feed URL lists.

Checking the document type, XML or HTML will be a first step to find out the validness.

How can I do that in PHP? or is开发者_如何学JAVA there other ways to do what I want to do?


To check if Simplepie is able to parse a feed or not, you can just load the feed in question and check for errors:

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

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

You might want to disable the auto-discovery feature to test specific feed URLs. Additionally you can aquire the feeds data on your own and use set_raw_data instead of set_feed_url.


Here seems to be ready-to-use function: http://www.sitepoint.com/forums/showthread.php?555763-Validating-an-RSS-Feed-with-PHP&p=3865285&viewfull=1#post3865285

So you just call

$rssvalid = validateFeed("http://yourUrlHere.com");
if($rssvalid == true){
print"Yes, it´s valid!";
} else {
print"Sorry, it´s not valid!";
}


This is what I have done.

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

This resolved basic problem What I had.

0

精彩评论

暂无评论...
验证码 换一张
取 消