Разница в PHP между Curl и HttpRequest - PullRequest
23 голосов
/ 15 мая 2009

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

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

В чем различия между двумя? что худее? Быстрее? И то, и другое мне кажется одинаковым ...

Ответы [ 3 ]

24 голосов
/ 15 мая 2009

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

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

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

10 голосов
/ 15 мая 2009

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

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

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

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

5 голосов
/ 15 мая 2009

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...