对于PHP CLI中的cURL资源,我在curl_setopt(CURLOPT_FILE, $handle)
的帮助下设置了一个文件流,说明应该将下载的内容保存到哪里,其中$ handle是我可以写入的有效文件资源
现在我想重用相同的curl资源,清除文件句柄,这样我就可以执行curl请求并通过输出缓冲来捕获输出。
我已经读过你应该做curl_setopt(CURLOPT_FILE, STDOUT)
,但问题是它绕过输出缓冲区,我执行的任何请求都输出到我的cli并且无法通过输出缓冲捕获。
我也尝试关闭文件句柄,但这只是使响应消失为无效。
所有人都知道解决方案吗?
答案 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);