Разница PHP между Curl и HttpRequest
Мне нужно выполнить запросы RAW POST (PUT a $var) на сервер и принять результаты с этой страницы в виде строки. Также необходимо добавить пользовательскую информацию заголовка HTTP (например, x-example-info: 2342342)
У меня есть два способа сделать это
В чем разница между этими двумя? что еще хуже? Быстрее? Оба кажутся мне почти одинаковыми...
Ответы
Ответ 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 встроен, и это другое, что вам нужно добавить самостоятельно, что неудобно и снижает переносимость, если вы хотите разместить свое приложение в общей среде, которую вы не контролируете.
Для нужд, которые вы объяснили в своем вопросе, я бы определенно пошел за завивкой.