下载xml时卷曲超时

时间:2012-11-28 06:15:54

标签: php xml curl

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

url看起来像这样:

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

我尝试设置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);

任何人都有任何想法?

2 个答案:

答案 0 :(得分:1)

我相信你可能会在php.ini中命中default_socket_timeout,默认为60秒。

尝试更改并查看是否有效。如果没有,请尝试这样做。

$xml = file_get_contents($url);

执行此操作将使用您可以在此处阅读的包装:http://php.net/manual/en/wrappers.php

并且您还需要确保在php.ini中启用了file_get_contents使用的必需包装器(通常启用它们以便您可以正常,但只需检查以确保)。

使用它可以绕过你遇到的超时,如果CURL强制执行超时,并记得将php.ini中的default_socket_timeout从60 SECONDS调整为我认为可能是你的问题的其他东西

要检查的INI设置

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

答案 1 :(得分:0)

网址是GET请求吗?如果是这样,试试

$xml = get_file_content($url);