Подтвердить что ты не робот

Разница PHP между Curl и HttpRequest

Мне нужно выполнить запросы RAW POST (PUT a $var) на сервер и принять результаты с этой страницы в виде строки. Также необходимо добавить пользовательскую информацию заголовка HTTP (например, x-example-info: 2342342)

У меня есть два способа сделать это

В чем разница между этими двумя? что еще хуже? Быстрее? Оба кажутся мне почти одинаковыми...

4b9b3361

Ответ 1

Curl в комплекте с PHP, HTTPRequest - отдельное расширение PECL.

Таким образом, гораздо более вероятно, что CURL будет установлен на вашей целевой платформе, что в значительной степени является решающим фактором для большинства проектов. Я бы подумал только об использовании HTTPRequest, если вы планируете только устанавливать свое программное обеспечение на серверах, на которых у вас есть возможность устанавливать расширения PECL; если ваши клиенты будут делать собственные установки, установка PECL-расширений обычно не может быть и речи.

Эта страница, похоже, предполагает, что HTTPRequest использует CURL под капотом в любом случае. Похоже, что это может предложить немного более элегантный интерфейс для curl_multi _ *().

Ответ 2

HTTPRequest (и расширение PECL) построено на libcurl.

http://us.php.net/manual/en/http.requirements.php

HTTPRequest на самом деле просто более простой/более синтаксически дружественный способ выполнения одной и той же задачи.

Как отметил Фрэнк Фармер, у вас, скорее всего, есть целевая платформа с уже установленным завитком, и может возникнуть проблема с получением библиотеки PECL, установленной хостинг-провайдером.

Ответ 3

HTTPRequest является "своего рода" оболочкой для завитки. Эти две цитаты из руководства должны дать вам ключ:

  • Он обеспечивает мощную функцию запроса, если она построена с поддержкой CURL. Параллельные запросы доступны для PHP 5 и выше.

  • Расширение должно быть построено с поддержкой libcurl для включения функции запроса (--with-http-curl-requests). Требуется версия библиотеки, равная или более высокая для v7.12.3.

Сказал (и сказал, что я никогда не использовал это расширение самостоятельно), похоже, если вы хотите, чтобы ваш код выглядел более объектно-ориентированным, вы можете пойти на этот, но он может быть немного медленнее, хотя ничто не сравнилось с внешним вызовом, который вы собираетесь сделать, поэтому я не буду рассматривать производительность, чтобы сделать мой выбор. Я бы отдал предпочтение тому факту, что curl встроен, и это другое, что вам нужно добавить самостоятельно, что неудобно и снижает переносимость, если вы хотите разместить свое приложение в общей среде, которую вы не контролируете.

Для нужд, которые вы объяснили в своем вопросе, я бы определенно пошел за завивкой.