2010-10-08 72 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;