使用文件获取内容或卷曲

时间:2011-04-30 20:02:32

标签: php curl file-get-contents

我被要求使用一个简单的facebook api来返回返回json字符串的工作中的喜欢或分享的数量。 现在,因为我要为大量链接执行此操作,哪一个更好:

使用file_get_contents或cURL。

它们似乎都返回相同的结果,cURL似乎使用起来更复杂,但它们之间的区别是什么。为什么大多数人建议使用cURL而不是file_get_contents? 在我运行可能需要一整天才能处理的api之前,我希望得到反馈。

2 个答案:

答案 0 :(得分:25)

几年前,我对两者进行了基准测试,而CURL则更快。使用CURL,您可以创建一个可用于每个请求的CURL实例,并直接映射到非常快速的libcurl库。使用file_get_contents,您可以获得协议包装器的开销,并为每个请求执行初始化代码。

我将挖掘我的基准脚本并在PHP 5.3上运行,但我怀疑CURL仍然会更快。

答案 1 :(得分:10)

cURL比file_get_contents更广泛地支持https请求,并且它不是太复杂。虽然单行file_get_contents解决方案看起来很干净,但它的幕后开销大于cURL。

$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL,$feedURL);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, false);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);

这是我用来进行facebook api调用的方法,因为其中许多需要access_token,而facebook只接受安全连接中的access_token信息。我也注意到执行时间差异很大(cURL要快得多)。