2012-01-28 2 views
1

file_get_contents와 함께 파일 ("http://feeds.artistdata.com/xml.shows/artist/AR-YX458DZO75EQACZ3/xml")을로드하려고하는데 5-10 초 내에 오류가 발생합니다. xml 파일은 브라우저에서 잘로드되며, 위의 URL 끝에 "/ future"를 추가하면 더 작은 버전을 사용하면 file_get_contents로 잘로드됩니다.PHP file_get_contents가 "스트림을 열지 못했습니다 : HTTP 요청에 실패했습니다!" 대용량 XML 파일에 액세스 할 때 5-10 초 내에

스크립트는 다음 두 가지 오류의

$file = "http://feeds.artistdata.com/xml.shows/artist/AR-YX458DZO75EQACZ3/xml"; 
$data = file_get_contents($file); 

하나는 표시, 다음 중 하나를

Warning: file_get_contents("http://feeds.artistdata.com/xml.shows/artist/AR-YX458DZO75EQACZ3/xml") [function.file-get-contents]: failed to open stream: HTTP request failed! in MY_PHP_SCRIPT.php on line 2 

또는 :

Warning: file_get_contents("http://feeds.artistdata.com/xml.shows/artist/AR-YX458DZO75EQACZ3/xml") [function.file-get-contents]: failed to open stream: Connection timed out in MY_PHP_SCRIPT.php on line 2 

어떤 아이디어가? 내가 using cURL instead을 시도했지만, 그럴 때 "Error on line 1"이 표시됩니다. 오류는 10 초 이내에 나타나므로 기본값은 앱에 따라 일반적으로 15 초 또는 30 초이므로 시간 초과 문제라고는 상상할 수 없습니다.

+0

방화벽을 사용하고 있습니까? – Arjan

+0

표시 한 링크에서 cURL을 사용한 경우 - 변경 했습니까? curl_setopt ($ curl_handle, CURLOPT_CONNECTTIMEOUT, 2); to : curl_setopt ($ curl_handle, CURLOPT_CONNECTTIMEOUT, 15); ? – alfasin

답변

0

//이 XML 피드이를 사용 ('http://artistdata.sonicbids.com/ari-herstand/shows/xml/') 잘

$ 부하 = file_get_contents를 작동합니다

print_r ($ load);

+0

아티스트 데이터의 새 URL에 대해 잘 알고 있지만 사용해도 여전히 같은 오류가 발생합니다. 내가 늘릴 수있는 15 초 이하의 시간 제한 값이 있습니까? – Micah

+0

artistdata.com에서 제공하는 URL을 사용하는 것이 가장 좋습니다. 그것이 그들이 당신이 사용하기를 바라는 것입니다. 실제 데이터를 다른 URL로 옮기더라도 계속해서 작동해야합니다. – Arjan

+0

@puponpup ..... 해당 사이트가 업데이트 중이라는 것을 의미하는 경우, 한 번 15 초에 새로 고침을 할 수 있으므로 업데이트 된 결과를 얻을 수 있습니다. –

0
  1. file_get_contents()는에서 시작하는 문자열에서 파일을 반환 바이트를 maxlen을 위해 지정된 오프셋 (offset)

  2. 중 최대 길이가 제로보다 작은 경우, 또는 오프셋 경우를 초과하는 경우 E_WARNING 수준 오류가 생성됩니다 스트림의 길이

+0

오프셋 및 최대 길이가 지정되지 않았으므로 적용 할 수 없습니다. – Arjan

+0

파일이 아마도 위에 올라간 기본 최대 길이가 있습니다. 더 작은 XML 파일을 시도해보십시오. 제대로 작동하면 그럴 수 있습니다. – alfasin

+0

기본값은 파일 끝에 도달 할 때까지 읽는 것입니다. – Arjan

관련 문제