2010-10-08 48 views
0

今天有人要求我用cURL来帮助他,结果我查了一下前面写的功能。我想知道为什么我使用ob函数。我当时可能遵循了一些教程;然而,当我现在查看大多数cURL类时,他们并不使用ob函数......我想问的是,什么是更好的性能呢?下面的代码有什么问题吗?有没有更好的方法来做到这一点?PHP cURL和ob

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
ob_start(); 
curl_exec ($ch); 
curl_close ($ch); 
$string = ob_get_contents(); 
ob_end_clean(); 
return $string; 

回答

1

默认情况下,curl将响应输出到标准输出。所以,你的代码缓冲输出,然后用​​访问它。

您应该使用CURLOPT_RETURNTRANSFER来代替。这会导致curl返回curl_exec的响应。

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
$string = curl_exec ($ch); 
curl_close ($ch); 
return $string;