5

我正在重用很久以前的 curl 函数,现在的行为与我记忆中的不同。在这种特殊情况下,我正在验证用户的 Twitter 凭据。这是现在的代码:

$cred = $_POST['twitter_username'].':'.$_POST['twitter_password'];
$url = "http://twitter.com/account/verify_credentials.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_GET, 0);
curl_setopt($ch, CURLOPT_USERPWD, $cred);
$result = curl_exec ($ch);
curl_close ($ch);

这对于身份验证工作正常,但是将整个 JSON 响应输出到浏览器,我不想这样做。

我对卷曲不是很熟悉。我尝试将 CURLOPT_VERBOSE 设置为 0 和 false,但都没有成功。我确信这是某个地方的一个非常简单的更改,但我不知道它是什么。

谢谢

4

2 回答 2

23

你需要这个选项:

curl_setopt(CURLOPT_RETURNTRANSFER, true);

来自curl 文档

CURLOPT_RETURNTRANSFER: TRUE 将传输作为 curl_exec() 的返回值的字符串返回,而不是直接输出。

于 2009-04-23T19:33:32.073 回答
3

我写了这个函数来帮助简化我的 CURL 请求

function curl_http_request ($url, $options)
{
    $handle = curl_init($url);
    curl_setopt_array($handle, $options);
    ob_start();
    $buffer = curl_exec($handle);
    ob_end_clean();
    curl_close($handle);
    return $buffer;
} 

使用示例

$options = array(
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_USERPWD => $cred
);

curl_http_request($url, $options);
于 2009-05-08T19:45:04.987 回答