首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在ubuntu中启用php-curl功能

在ubuntu中启用php-curl功能
EN

Stack Overflow用户
提问于 2012-08-12 18:47:10
回答 1查看 1.1K关注 0票数 1

我正在用php中的curl尝试一些东西。

我读到过使用CURLOPT_VERBOSE来帮助调试的文章。但是它没有给出任何输出。我检查了我的phpinfo(),在cURL下:

代码语言:javascript
复制
debug => no

我想这就是问题所在。如何将其设置为yes?我在php.ini里找了一下,找到了。

在谷歌上也不走运。在这里也不走运:How to enable features for php-curl

我希望有人能帮助我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-18 05:44:13

CURLOPT_VERBOSE设置不需要cURL的调试构建,但是默认情况下,CURLOPT_VERBOSE信息会输出到STDERR,它只在控制台上可见。因此,如果您从浏览器运行PHP,则不会将详细输出发送到您可以看到的任何地方。

您可以将选项CURLOPT_STDERR设置为文件句柄,详细输出应写入其中。

你应该能够做到这一点:

代码语言:javascript
复制
$stdout = fopen('php://output', 'w+');

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $stdout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($ch);

我不确定我现在是否遇到了PHP bug (通过FastCGI运行PHP5.4.5),因为我在浏览器中看不到详细的输出,但是如果我从命令行运行它,我就会看到。如果我fwrite$stdout,我确实在浏览器中看到了输出,但仍然没有从cURL中看到任何输出,所以我知道句柄是有效。

如果您遇到同样的问题,这里有一个解决方法:

代码语言:javascript
复制
$tempout = fopen('php://temp', 'w+');

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com');
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_STDERR, $tempout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$data = curl_exec($ch);

rewind($tempout);
$debug = stream_get_contents($tempout);

echo $debug; // the data from CURLOPT_VERBOSE

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11921605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档