从cURL中删除文件句柄(CURLOPT_FILE)

时间:2012-11-06 13:13:12

标签: php curl command-line-interface

对于PHP CLI中的cURL资源,我在curl_setopt(CURLOPT_FILE, $handle)的帮助下设置了一个文件流,说明应该将下载的内容保存到哪里,其中$ handle是我可以写入的有效文件资源

现在我想重用相同的curl资源,清除文件句柄,这样我就可以执行curl请求并通过输出缓冲来捕获输出。

我已经读过你应该做curl_setopt(CURLOPT_FILE, STDOUT),但问题是它绕过输出缓冲区,我执行的任何请求都输出到我的cli并且无法通过输出缓冲捕获。 我也尝试关闭文件句柄,但这只是使响应消失为无效。

所有人都知道解决方案吗?

1 个答案:

答案 0 :(得分:2)

你可以尝试将CURLOPT_RETURNTRANSFER设置为true,这应该覆盖写入文件

curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl_handle);

获取标题

curl_setopt($curl_handle , CURLOPT_HEADER , true);
$result = curl_exec($curl_handle);
list($header , $data) = explode("\r\n\r\n" , $result , 2);