What are the best practices for dynamically generating images based on user input in PHP, while maintaining flexibility and security?

When dynamically generating images based on user input in PHP, it is important to sanitize and validate the input to prevent security vulnerabilities such as SQL injection or cross-site scripting attacks. Additionally, using a template system or library like GD or Imagick can help maintain flexibility in creating different types of images. Finally, consider caching generated images to improve performance and reduce server load.

// Example PHP code snippet for dynamically generating images based on user input

// Sanitize and validate user input
$userInput = $_GET['input'];
if (!filter_var($userInput, FILTER_VALIDATE_INT)) {
    die('Invalid input');
}

// Generate image using GD library
$image = imagecreate(200, 200);
$bgColor = imagecolorallocate($image, 255, 255, 255);
$textColor = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 4, 50, 50, $userInput, $textColor);

// Output image
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);