Как мне загрузить содержимое RSS-канала, отображаемого php? - PullRequest
1 голос
/ 25 января 2010

Wordpress отображает RSS-канал на http://myurl.com/feed/rss/, но, конечно, там нет файла. Я пишу скрипт для чтения и рендеринга RSS, но загрузка «файла» как XML завершается неудачей, потому что там на самом деле нет файла. Я пишу:

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

И я получаю эту ошибку:

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

Даже использование file_get_contents выдает мне эту ошибку:

Предупреждение: file_get_contents (/ news / feed / rss /) [function.file-get-contents]: не удалось открыть поток: нет такого файла или каталога

Ответы [ 2 ]

3 голосов
/ 25 января 2010

Файл отсутствует, поскольку URL-адрес перенаправляется, но вы пытаетесь получить к нему доступ как к файлу. Предполагая, что у вас есть правильные упаковщики fopen (и у всех), попробуйте открыть URL с помощью simplexml:

$rss = simplexml_load_file('http://myurl.com/news/feed/rss/');
0 голосов
/ 25 января 2010

Лучший способ - использовать Curl (http://us2.php.net/manual/en/book.curl.php) для загрузки внешнего контента, поскольку вы можете манипулировать заголовками и т. Д., Он также поддерживает перенаправления и т. Д.

Например, если mod_security установлен на apache - вы не сможете получить контент без передачи заголовка user-agent и т. Д., Но Curl определенно поможет с этим.

...