关于PHP的cURL好奇地保持沉默

时间:2012-06-26 16:36:14

标签: php curl

好的,所以经过一段时间努力让cURL获取受密码保护的XML文件,并且从中得不到任何结果,我尝试了解我的代码以查看 的工作原理。事实证明没有。这是我的代码:

$ch = curl_init("www.google.com");

curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

curl_exec($ch);

curl_close($ch);

而且cURL是沉默的。我的意思是什么都没有打印到页面。我确实启用了它,我的phpinfo看起来像这样:

cURL support            enabled
cURL Information            libcurl/7.16.0 OpenSSL/0.9.8a zlib/1.2.3

在Windows NT服务器上运行php 5.2。有什么建议吗?

1 个答案:

答案 0 :(得分:7)

关键在于这一行:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

您告诉cURL返回传输结果而不是回显它(默认值)。所以要么删除该行,要么执行以下操作:

$result = curl_exec($ch);

if ($result === false) {
    echo "Error: " . curl_error($ch);
} else {
    echo $result;
}

如果您在评论中指出了SSL错误,可以在cURL句柄上设置另一个选项以禁用检查证书:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);