下载xml时卷曲超时

use*_*258 5 php xml curl

所以,我尝试从url获取带有curl的xml文件.事情是,文件是通过脚本按需生成的,这需要80-100秒,因此我的卷曲会因超时错误而下降.

url看起来像这样:

https://domain/mancgi/report?params&out=xml
Run Code Online (Sandbox Code Playgroud)

我试图设置CURLOPT_TIMEOUTCURLOPT_CONNECTTIMEOUT,以及set_time_limit()脚本本身(工作正常),但没有任何改变 - 仍然超时.

卷曲代码如下所示:

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);
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?

Hen*_*ker 1

我相信您可能会遇到 php.ini 中的 default_socket_timeout,默认情况下为 60 秒。

尝试改变一下,看看是否有效。如果没有,请尝试这个。

$xml = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

这样做将使用包装器,您可以在这里阅读: http: //php.net/manual/en/wrappers.php

您还需要确保在 php.ini 中启用了 file_get_contents 使用所需的包装器(通常是启用的,所以您应该没问题,但只需检查以确保)。

如果超时是由 CURL 强制执行的,那么使用它可能会绕过您遇到的超时,并记住将 php.ini 中的 default_socket_timeout 从 60 秒调整为我认为可能是您的问题的其他值

要检查的 INI 设置

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