用内存I / O流代替curl CURLOPT_STDERR

时间:2013-09-03 12:57:23

标签: php curl

我正在尝试将curl VERBOSE信息保存到字符串中。这是我到目前为止所尝试的

curl_setopt($ch, CURLOPT_VERBOSE, true);
$fp = fopen("php://memory", 'w+'); //also tried temp
curl_setopt($ch, CURLOPT_STDERR, $fp);
$ret = curl_exec($ch);
rewind($fp);
$verbose = stream_get_contents($fp);
echo "Verbose: ".$verbose;

$ verbose包含空值

添加

fputs($fp, "test"); //works if I manually put test string

有效,输出清晰可写,stream_get_contents是正确的功能

这里我缺少的是什么?

由于

PS请不要让我使用临时文件。我正在寻找一种正确的方式来支持IO流

修改

$outputStream = fopen("php://output", 'w');
curl_setopt($ch, CURLOPT_STDERR, $outputStream);
ob_start();
$ret = curl_exec($ch);
$verbose = ob_get_contents();       
ob_end_clean();
fclose($outputStream);
curl_close($ch);
echo "Verbose: ".$verbose;

这不起作用,因为某些原因,ob_buffer无法捕获php://输出(bug?)

0 个答案:

没有答案