2011-04-01 2 views
0

내가 다음 URLfopen()을 사용하여 원격 파일을 여는 방법은 무엇입니까?

$file = "http://en.wikipedia.org/w/api.php?action=parse&page=Kundapura&prop=text&format=xml"; 

$fp = fopen($file, "r"); 

를 열어야하지만 난/403은 당신이 파일을 필요합니까 무엇

+1

@blueshift, [간단히 잘못] (http://us2.php.net/manual/en/wrappers.php). 기본 구성에는 HTTP를 포함하여 12 개의 서로 다른 래퍼가 포함됩니다. – Charles

+0

@Charles 오, 맞아. 어쩌면 나는 C 질문에 충실해야한다. – blueshift

답변

0

하지만 난 HTTP 요청을 경고 geeting하고 실패/(403)는 403 error 자신의 서버에서

오고 금지 된.

사용중인 IP 주소 또는 블록의 누군가가 위키피디아 API 사용을 적극적으로 금지하고 있습니다. 조사하려면 Wikipedia의 책임자에게 문의해야합니다.

+0

위키피디아 관리자는 위와 같은 것을 검사 할 방법이 없다. 위키 미디어 시스템 관리자를 찾아야한다. 그러나 다행스럽게도 Ragh의 부분에서 잘못된 설정 만있을 가능성이 큽니다. – Anomie

1

을 금지 실패 HTTP 요청을 경고 geeting 무엇입니까? 출력이 필요한 경우 file_get_contents()을 시도한 다음 파일 대신 문자열로로드하고 조작 할 수 있습니다.

+0

어플 리케이션을 위해 구문 분석해야한다. – Raghs

4

기본 PHP 사용자 에이전트가 차단되었습니다. 자세한 내용은 Wikimedia's User-Agent policy을 참조하십시오. 당신은 충분히 쉽게 다음과 같이 스크립트의 상단에 ini_set를 사용하여 사용자 에이전트를 변경할 수 있습니다

ini_set("user_agent", "Testing for http://stackoverflow.com/questions/5509640"); 

은 영어 위키 백과는 API를 통해 여러 페이지를 다운로드 금하고 있습니다 마십시오 (대신 database dumps을 제공), 그리고 자동화 된 프로세스 approved을 제외하고 실제로 위키를 편집하는 것은 금지되어 있습니다. 자세한 내용은 their bot policy을 참조하십시오.

관련 문제