web-dev-qa-db-ja.com

PHP CurlとHttpRequestの違い

サーバーに対してRAW POST(PUT a $ var)リクエストを実行し、そのページからの結果を文字列として受け入れる必要があります。また、カスタムHTTPヘッダー情報(xなど)を追加する必要があります。 -例-情報:2342342)

私には2つの方法があります

2つの違いは何ですか?より無駄のないものは何ですか?もっと早く?どちらも私にはほとんど同じように見えます...

24
The Unknown

CurlはPHPにバンドルされており、HTTPRequestは別個のPECL拡張機能です。

そのため、CURLがターゲットプラットフォームにインストールされる可能性がはるかに高くなります。これは、ほとんどのプロジェクトの決定要因です。個人的にPECL拡張機能をインストールできるサーバーにのみソフトウェアをインストールする予定がある場合にのみ、HTTPRequestの使用を検討します。クライアントが独自のインストールを行う場合、通常、PECL拡張機能のインストールは問題外です。

このページ とにかくHTTPRequestが内部でCURLを使用することを示唆しているようです。ただし、curl_multi _ *()に対してもう少しエレガントなインターフェイスを提供しているようです。

25
Frank Farmer

HTTPRequest(およびPECL拡張機能)はlibcurl上に構築されています。

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

HTTPRequestは、実際には、同じタスクを実行するための、より簡単で構文的にわかりやすい方法です。

Frank Farmerが述べたように、curlがすでにインストールされているターゲットプラットフォームを使用している可能性が高く、ホスティングプロバイダーがPECLライブラリをインストールするのが難しい場合があります。

10
JayTee

HTTPRequestは、curlのラッパーの「一種」です。マニュアルからのこの2つの引用はあなたに手がかりを与えるはずです:

  • CURLサポートを使用して構築されている場合、強力なリクエスト機能を提供します。並列リクエストはPHP 5以上で利用できます。

  • 拡張機能は、リクエスト機能を有効にするために"libcurlサポートを使用して構築する必要があります(--with-http-curl-requests)。 v7.12.3以上のライブラリバージョンが必要です。

それは(そして私自身はこの拡張機能を使用したことがないと言った)、コードをよりオブジェクト指向に見せたい場合は、これを選択することができますが、外部と比較して何もありませんが、少し遅いかもしれませんあなたがするつもりの電話をするので、私は私の選択をするためにパフォーマンスを考慮しません。私はcurlが組み込まれているという事実を優先しますが、これは自分で追加する必要があります。これは不便であり、制御できない共有環境でアプリをホストする場合に移植性が低下します。

あなたがあなたの質問で説明したニーズのために、私は間違いなくカールに行きます。

5
palako