PHP Curl下载PDF文件

时间:2013-02-19 10:32:35

标签: php

使用PHP curl下载50多个PDF文件的正确方法是什么?

以下是我正在使用的代码:

$fp = fopen("test.pdf", 'w');        
$ch = curl_init();

curl_setopt($ch,CURLOPT_PROXY,"http://test:123");
curl_setopt($ch,CURLOPT_PROXYPORT,123);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);
curl_setopt ($ch, CURLOPT_TIMEOUT, 500);
curl_setopt($ch,CURLOPT_URL,"http://download/test.pdf");
curl_setopt($ch, CURLOPT_FILE, $fp);

curl_exec($ch);
curl_close($ch);
fclose($fp);

问题有时候,2-3个PDF文件没有正确下载(大小为0-1个字节)。知道为什么它不稳定吗?我必须在上面的代码中包含其他内容吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

即使从浏览器和良好的连接,Web请求一般也很狡猾。从远程站点拒绝连接到从多个位置同时执行php文件,可能会出现一些问题。看看:

http://www.php.net/manual/en/function.curl-error.php

尝试在某处打印错误消息以便在curl_exec上进行分析。

如果它类似于连接问题,您可能需要引入重试机制,不确定您的脚本是否可能从多个位置并行执行,但如果是,则应该查看{{3首先尝试生成合理唯一的文件名,尝试下载,然后只有文件移动到预期的目标文件中,如果没有返回错误,否则,重试最多X次。

关于Curl的稳定性,我经常使用它并且它没有被证明对我来说不稳定,但我没有提取二进制数据。我希望一些错误检测和错误消息的输出可以更清楚地说明根本原因在这里。