используя файл получить содержимое или curl - PullRequest
17 голосов
/ 01 мая 2011

Меня попросили использовать простой API Facebook, чтобы вернуть количество лайков или акций на работе, которые возвращают строку json.Теперь, поскольку я собираюсь сделать это для очень большого количества ссылок, какая из них лучше:

Использование file_get_contents или cURL.

Обе они, похоже, возвращают одинаковые результаты, и кажется, что cURLбыть более сложным в использовании, но в чем разница между ними.почему большинство людей рекомендуют использовать cURL вместо file_get_contents?Прежде чем запустить API, который может занять целый день, я хотел бы получить обратную связь.

Ответы [ 2 ]

25 голосов
/ 01 мая 2011

Несколько лет назад я сравнил их, и CURL был быстрее.С CURL вы создаете один экземпляр CURL, который можно использовать для каждого запроса, и он отображается непосредственно в очень быструю библиотеку libcurl.Используя file_get_contents, вы получаете накладные расходы на обертки протоколов и код инициализации, выполняемый для каждого отдельного запроса.

Я выкопаю свой тестовый сценарий и буду работать на PHP 5.3, но я подозреваю, что CURL все равно будет быстрее.

10 голосов
/ 10 июня 2011

cURL поддерживает запросы https более широко, чем file_get_contents, и это не слишком сложно.Хотя однострочное решение 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);

Это то, что я использую для вызовов API api, так как для многих из них требуется access_tokenи Facebook будет принимать информацию access_token только в безопасном соединении.Я также заметил большую разницу во времени выполнения (cURL намного быстрее).

...