使用文件获取内容或卷曲

2022-08-30 21:58:36

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

使用file_get_contents或 cURL。

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


答案 1

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

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


答案 2

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要快得多)。


推荐