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