Что лучше подходит между fsockopen и curl?

Я создаю приложение для автоматического повторного выставления счетов.
Пожалуйста, дайте мне знать, какой вариант я должен выбрать для отправки запроса на сервер

  • fsockeopen
  • локон

и почему один лучше другого?

я бы порекомендовал вам завиток из-за настраиваемых параметров. например, ssl

Я бы рекомендовал использовать контексты потока PHP со встроенными функциями: http://us3.php.net/manual/en/book.stream.php . Полная функциональность HTTP / S и прекрасно интегрируется с функциями fopen / file_get_contents . Вы можете (например) сделать POST следующим образом:

 $chunk = file_get_contents("https://graph.facebook.com/oauth/access_token?client_id=".FACEBOOK_APP_ID."&client_secret=".FACEBOOK_SECRET."&grant_type=client_credentials"); if($request_ids && $chunk){ $cookie = explode('=', $chunk); if(count($cookie) == 2) $cookie = $cookie[1]; else $cookie = $cookie[0]; // flush it foreach($request_ids as $request_id){ $context = stream_context_create(array('http' => array('method' => 'POST', 'content' => 'method=DELETE', 'user_agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)", 'max_redirects' => 0))); @file_get_contents('https://graph.facebook.com/' . $request_id . '?access_token=' . $cookie, false, $context); } } 

Этот код регистрируется в Facebook, извлекает токен входа в приложение и затем использует защищенный HTTP POST для удаления нескольких объектов с помощью API-интерфейса графика.

Если вам нужно делать более интересные вещи, вы также можете.

 $context = stream_context_create(array('http' => array( // set HTTP method 'method' => 'GET', 'user_agent' => "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6 (.NET CLR 3.5.30729)", 'max_redirects' => 0))); // extract the cookies $fp = fopen(URL, "r", false, $context); $meta = stream_get_meta_data($fp); $headers = $metadata['wrapper_data']; fclose($fp); 

Будет ли журнал Выведет заголовки, возвращенные URL-адресом. Никаких внешних библиотек не требуется.

Ни. Не прямо, я имею в виду.

Написание и разбор HTTP-заголовков поверх голого металла сокета является безумным , и я считаю API-интерфейс curl абсолютно откровенным.

Взгляните на HTTP_Request2 PEAR, возможно , он даже установлен на вашем компьютере. А если нет, вы можете просто связать его с вашим кодом – это лицензия BSD. Он обматывает либо сокеты, либо завитки , и обеспечивает относительно разумный HTTP-интерфейс.

Используйте Curl, когда вам нужно обрабатывать протокол HTTP и сокет, когда вам нужен более общий доступ к серверу без http.

Я изучаю это прямо сейчас и наткнулся на следующую страницу, которая дает код для тестирования различных опций и создания выходных скоростей. Очень интересно.

http://www.hashbangcode.com/blog/quickest-way-download-web-page-php