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

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

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

  • Curl ( http://us.php.net/manual/en/book.curl.php )
  • PHP HTTP с помощью HTTPRequest ( http://us.php.net/manual/en/book.http.php )

Каковы различия между ними? что более скудное? Быстрее? Оба кажутся мне почти одинаковыми …

Curl поставляется с PHP, HTTPRequest – это отдельное расширение PECL.

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

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

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

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

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

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

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

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

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

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

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