What are the best practices for handling image formats and file names when working with PHP's image functions?

When working with PHP's image functions, it is important to handle image formats and file names properly to ensure compatibility and security. To handle image formats, always check and validate the file format before processing it to prevent potential security risks. When naming image files, use a standardized naming convention and sanitize user input to avoid any malicious code injection.

// Example code snippet for handling image formats and file names
$image = $_FILES['image'];
$allowedFormats = ['jpg', 'jpeg', 'png', 'gif'];

// Check if the file format is allowed
$ext = pathinfo($image['name'], PATHINFO_EXTENSION);
if (!in_array(strtolower($ext), $allowedFormats)) {
    die('Invalid file format. Only JPG, JPEG, PNG, and GIF files are allowed.');
}

// Sanitize the file name
$fileName = preg_replace("/[^A-Za-z0-9.]/", "", $image['name']);
$fileName = time() . '_' . $fileName;

// Process the image file
move_uploaded_file($image['tmp_name'], 'uploads/' . $fileName);