What are the differences between cURL, HttpRequest, and file_get_contents when calling scripts on a remote server in PHP?

When calling scripts on a remote server in PHP, cURL, HttpRequest, and file_get_contents are three common methods to make HTTP requests. cURL is a versatile library that supports various protocols and options for customization. HttpRequest is an object-oriented alternative with similar functionality to cURL. file_get_contents is a simpler method that retrieves the content of a URL as a string, but it may not offer as much control or flexibility as cURL or HttpRequest.

// Using cURL to make an HTTP request to a remote server
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://example.com/api');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

// Using HttpRequest to make an HTTP request to a remote server
$request = new HttpRequest('http://example.com/api', HttpRequest::METH_GET);
$response = $request->send()->getBody();

// Using file_get_contents to retrieve content from a remote server
$response = file_get_contents('http://example.com/api');