Are there any best practices for handling file types when using curl in PHP?

When using curl in PHP to download files, it is important to handle different file types appropriately. One common approach is to use the `finfo_file` function to determine the MIME type of the downloaded file and then save it with the correct file extension. This helps ensure that the file is saved correctly and can be opened or processed properly.

// Initialize cURL session
$ch = curl_init();

// Set cURL options
curl_setopt($ch, CURLOPT_URL, 'http://example.com/file-to-download.jpg');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Execute cURL session
$data = curl_exec($ch);

// Get the MIME type of the downloaded file
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_buffer($finfo, $data);

// Determine the file extension based on the MIME type
$ext = '';
switch ($mime) {
    case 'image/jpeg':
        $ext = '.jpg';
        break;
    case 'image/png':
        $ext = '.png';
        break;
    // Add more cases for other file types as needed
}

// Save the downloaded file with the correct file extension
file_put_contents('downloaded-file' . $ext, $data);

// Close cURL session
curl_close($ch);