2012-11-28 3 views
5

그래서 url에서 curl을 사용하여 xml 파일을 가져 오려고합니다. 문제는 파일이 스크립트를 통해 요청에 따라 생성된다는 것입니다.이 파일은 최대 80-100 초가 걸리므로 시간 초과 오류로 인해 컬이 떨어지고 있습니다.xml을 다운로드 할 때 curl 시간 초과

https://domain/mancgi/report?params&out=xml 

내가 (잘 작동) 스크립트 자체에 대한 CURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT, 또한 set_time_limit()을 설정하려고했으나 아무것도 변경되지 것 - 여전히 제한 시간 :

URL은 다음과 같은 것을 보인다.

컬 코드는 다음과 같습니다

set_time_limit(1000); 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 0); 
curl_setopt($curl, CURLOPT_TIMEOUT, 300); 
$xml = curl_exec($curl); 

누구나 어떤 아이디어를 가지고?

+0

을 확인합니다. –

+0

어떤 종류의 시간 초과가 있으며 어떻게 알 수 있습니까? 세부 사항을 제공하십시오 – Ranty

+0

실행 시간은 phpinfo()에 따라 set_time_limit()에 의해 무시됩니다. 그러나 기본값이 아니더라도 기본적으로 180 초로 설정되어 충분합니다. – user976258

답변

1

를하려고하면 당신이 기본적으로 60 초입니다 php.ini 파일에서 default_socket_timeout을 타격 할 수있다 생각합니다.

변경하여 작동하는지 확인하십시오. 그렇지 않은 경우 대신 사용해보십시오.

$xml = file_get_contents($url); 

이 당신이 여기에 대해 읽을 수 있습니다 래퍼 사용 하 : http://php.net/manual/en/wrappers.php

을 그리고 당신은 또한 file_get_contents로 사용하기 위해 필요한 래퍼는 일반적으로 가능하게하는 (php.ini 파일에서 활성화되어 있는지 확인해야합니다 그래서 당신은 괜찮을 것입니다,하지만 확실히 확인하십시오).

제한 시간이 CURL에 의해 시행되는 경우가 발생하는 타임 아웃을 무시하고 내가 당신의 문제가있을 수 있습니다 생각 뭔가 다른 60 초에서 php.ini 파일에서 default_socket_timeout을 조정하는 것을 잊지 수를 사용

INI 설정은 서버 설정에서 스크립트 시간 실행 제한을 늘릴 필요가

http://php.net/manual/en/filesystem.configuration.php

+0

@ user1834735, @VBAssassin 죄송합니다,'file_get_contents()'을 (를) 사용하셨습니까? 왜냐하면'get_file_content()'의 이름으로 함수를 알지 못하기 때문에 구글도 그것들을 모른다. 그리고'file_get_contents()'는 그 일을하지 않을 것입니다. 대부분의 사무실에서 수 시간 동안 브레인 스톰을 한 후에이 문제는 아파치 설정, php.ini 지시어와 불운의 조합이 거의 없다는 결론을 내 렸습니다. 이번에는 이번에는 펄과 함께 가고 있습니다. 질문. 그러나 어쨌든 여러분 모두에게 감사드립니다. 여러분 모두는 실제로 정말로 도움이되었습니다. – user976258

+0

진주? 펄을 말하는거야? ;)는 오타를 수정했습니다. "사무실에서 대부분 몇 시간 동안 브레인 스톰을 한 후"정말요?무엇인가? :/상급 PHP 개발자가 없으므로 이런 종류의 문제를 찾기 위해 모든 장소를 알고 있어야합니다. 행운을 빌어 요. – VBAssassin

+0

예, 펄, 아빠. 그리고 정말로, 이런 식으로. 첫째, 우리는 실제로 수석 PHP 개발자가 없습니다. - 둘째로, 이것은 매우 지루한 날이었습니다. 그래서 우리 모두를위한 일종의 entertaiment였습니다 :) 어쨌든, 행운을 빌어 요. – user976258

0

URL은 GET 요청입니까? 그래서

$xml = get_file_content($url); 
+0

PHP에서 그런 기능이 없습니다 – Piero

관련 문제