file_get_contentsとcurlとHttpRequestの違いについて


PHPでHTMLを取得する方法を調べたところ、  
file_get_contents、curl_exec、HttpRequestなどの手段があるそうなのですが、  
これら３つにどういう違いがあるのでしょうか？




`file_get_contents`は内部向けで対象のファイルの内容を文字列として読み込みます。  
外に出れなくもないですが、ちょっと遅いです。

* * *

`cURL`は、`libcurl`から呼び出されるデータ転送用のライブラリですね。  
元々コマンドラインから`cURL`は使うのですが、  
PHPからでも転送時のオプションを設定することで色々なプロトコルで接続できます。  
ただしPHPをコンパイル時にcURLをサポートさせる必要があります。

* * *

`HTTP_Request`はPearモジュールでサーバに最初から入っていることは無いですね。  
モジュールのインストールに制約があるようなサーバなら使わないですね……便利ですけど  
`cURL`をラップして作られているので出来ることは`cURL`とほとんど変わりませんが、  
PHP5以上では並列で接続できるというメリットがあります。  
※`curl_multi`があるので`cURL`が並列処理できないわけではないです。  
ただ`curl_multi`はCPU食いつぶして重かったような記憶があります。

