所以,我尝试从url获取带有curl的xml文件。事情是,文件是通过脚本按需生成的,这需要80-100秒,因此我的卷曲会因超时错误而下降。
url看起来像这样:
https://domain/mancgi/report?params&out=xml
我尝试设置CURLOPT_TIMEOUT
和CURLOPT_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);
任何人都有任何想法?
答案 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设置
答案 1 :(得分:0)
网址是GET请求吗?如果是这样,试试
$xml = get_file_content($url);