1

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

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

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

那么有人知道解决方案吗?

4

1 回答 1

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);
于 2012-11-06T13:15:26.270 回答