2010-01-25 6 views
1

Wordpress는 http://myurl.com/feed/rss/에 RSS 피드를 렌더링하고 있지만 실제로는 거기에 파일이 없습니다. RSS를 읽고 렌더링하는 스크립트를 작성하고 있지만 "파일"을 XML로로드하는 작업은 실제로 파일이 없으므로 실패합니다. 나는 쓰기 :PHP로 렌더링 된 RSS 피드의 내용을 어떻게로드합니까?

$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를 사용하는 것은 나에게이 오류 제공 :

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

답변

3

파일은 URL이 리디렉션되고 있기 때문에 거기입니다 하지만 파일로 액세스하려고합니다. 가정, SimpleXML을 사용하여 URL을 열어보십시오 올바른하면 fopen 래퍼가 (모두가 수행) :

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

이것은 최고의 솔루션처럼 들립니다. 감사합니다. 이 웹 사이트의 호스트는 "서버 구성에서 URL 파일 액세스가 비활성화되었습니다"라고 말합니다. 그래서 나는 지금 그것과 논쟁 중입니다. – Corey

+0

이상하게도, 나는 fopen 랩퍼를 사용하지 않는 호스트를 발견하지 못했습니다. –

+0

바하, 가장 좋습니다. WordPress 지원 포럼으로 이동하여 RSS를받는 방법을 묻습니다. 확실히 당신을 위해 리턴 할 함수가 있으며, 여분의 HTTP 요청을 처리 할 때 성능이 저하되지는 않습니다. –

0

가장 좋은 방법은 당신이 등 헤더를 조작 할 수 있기 때문에 외부 콘텐츠를로드하기 위해 컬 (http://us2.php.net/manual/en/book.curl.php)를 사용하는 것입니다,

예를 들어 mod_security가 apache에 설치되어있는 경우 사용자 에이전트 헤더 등을 전달하지 않고는 콘텐츠를 가져올 수 없지만 Curl은 확실히 도움을 줄 것입니다.

+1

또한 스트림 컨텍스트를 사용하여 fopen 래퍼로 헤더를 설정하여 말림의 필요성을 없앨 수 있습니다. 게다가 OP에는 헤더가 필요하지 않습니다. –

+0

죄송하지만 "OP"란 무엇입니까? – Kirzilla

+0

원본 포스터. 그리고 나는 그 주석을 두 번째로, 당신은 컬을 사용할 필요가 거의 없다. HTTP 래퍼를 사용하면 거의 모든 것을 할 수 있습니다. http://docs.php.net/manual/en/context.http.php –

관련 문제