docker中的php Curl冲突CURLOPT_FILE和CURLOPT_RETURNTRANSFER

时间:2019-06-10 07:41:11

标签: php docker

当我使用带有Plug 'vim-scripts/Tabmerge'CURLOPT_FILE选项的curl时,文件为空,没有任何curl错误:

CURLOPT_RETURNTRANSFER

卷曲错误:没有错误

$fp = fopen($saveTo, 'w+');
$ch = curl_init($fileUrl);
curl_setopt($ch, CURLOPT_FILE, $fp);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'ccc.text');

curl_exec($ch);

通过删除echo curl_strerror(curl_errno($ch)); //No error 结果为真。

我在apache的php 5.6&7.2和docker中的nginx的php-fpm 7.2中对其进行了测试。

1 个答案:

答案 0 :(得分:1)

请参见this comment

  

似乎在设置之前先设置CURLOPT_FILE   CURLOPT_RETURNTRANSFER不起作用,大概是因为CURLOPT_FILE   取决于设置的CURLOPT_RETURNTRANSFER。

所以尝试不同的顺序

$fp = fopen($saveTo, 'w+');
$ch = curl_init($fileUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FILE, $fp);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);    
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'ccc.text');

curl_exec($ch)

另请参阅以下内容: CURLOPT_FILE to STDOUTfclose