使用PHP和Curl隐藏响应

使用PHP和Curl隐藏响应

问题描述:

我从很久以前就重复使用了一个curl函数,现在这个函数的行为与我记忆中的不同。在这种特殊情况下,我正在验证用户的Twitter凭据。下面的代码,因为它现在代表:使用PHP和Curl隐藏响应

$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,但都没有成功。我确信这是一个非常简单的改变,但我失去了它的功能。

感谢

你需要这个选项:

curl_setopt(CURLOPT_RETURNTRANSFER, true); 

curl docs

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

+1

真棒的

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; } 

例如,由于一吨! – Evan 2009-04-23 19:35:39

+1

您也可以使用ob_start()和ob_end_clean()或ob_get_clean()临时捕获PHP的所有输出,尽管在这种情况下Roborg的答案是正确的。 – Randy 2009-04-23 19:36:52

我写了这个功能,以帮助简化我的卷曲请求使用

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

curl_http_request($url, $options);