What are best practices for handling image file types and formats in PHP?

When working with image file types and formats in PHP, it's important to validate the file type before processing it to prevent security vulnerabilities. One way to do this is by using the `getimagesize()` function to check the MIME type of the image. Additionally, it's recommended to use image manipulation libraries like GD or Imagick to handle image processing tasks securely.

// Validate image file type before processing
$allowedTypes = ['image/jpeg', 'image/png', 'image/gif'];
$imageInfo = getimagesize($_FILES['image']['tmp_name']);

if (!in_array($imageInfo['mime'], $allowedTypes)) {
    die('Invalid image file type. Only JPEG, PNG, and GIF files are allowed.');
}

// Use GD library to resize image
$source = imagecreatefromjpeg($_FILES['image']['tmp_name']);
$width = imagesx($source);
$height = imagesy($source);
$newWidth = 100;
$newHeight = ($height / $width) * $newWidth;
$destination = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresized($destination, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($destination, 'resized_image.jpg');
imagedestroy($source);
imagedestroy($destination);