Corey
Corey

Reputation: 1977

How do I load the contents of an rss feed rendered by php?

Wordpress is rendering an RSS feed at http://myurl.com/feed/rss/ but of course there's not actually a file there. I'm writing a script to read and render the RSS, but loading the "file" as XML fails, because there's not actually a file there. I write:

$rss = simplexml_load_file('/news/feed/rss/');

And I get this error:

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "/news/feed/rss/"

Even using file_get_contents gives me this error:

Warning: file_get_contents(/news/feed/rss/) [function.file-get-contents]: failed to open stream: No such file or directory

Upvotes: 1

Views: 1231

Answers (2)

Kirzilla
Kirzilla

Reputation: 16596

The best way is to use Curl ( https://www.php.net/manual/en/book.curl.php ) for loading external content because you can manipulate with headers etc., it also supports redirects etc.

For example, if mod_security is installed on apache - you wouldn't be able to grab content without passing user-agent header etc., but Curl will definately will help with it.

Upvotes: 0

Adam Hopkinson
Adam Hopkinson

Reputation: 28795

The file isn't there because the url is being redirected, but you're trying to access it as a file. Assuming you have the correct fopen wrappers (and everyone does), try opening the url with simplexml:

$rss = simplexml_load_file('http://myurl.com/news/feed/rss/');

Upvotes: 3

Related Questions