One other advantage of cURL and pecl_http (which is built on libcurl, the same library as the cURL extension uses) is that they support parallel requests, which can be a significant performance boost if you need to execute multiple requests from a single process. Look at the curl_multi_* functions in cURL and HttpRequestPool in pecl_http.