How can PHP scripts be optimized to efficiently cache and serve generated images?

To efficiently cache and serve generated images in PHP, you can utilize server-side caching mechanisms like storing the generated images in a temporary directory and serving them directly from there if they exist. Additionally, you can implement browser caching by setting appropriate headers to instruct browsers to cache the images locally. This will help reduce server load and improve the overall performance of your application.

// Check if the image exists in the cache directory
$cacheDir = 'cache/';
$imageName = 'generated_image.jpg';

if (file_exists($cacheDir . $imageName)) {
    // Serve the cached image
    header('Content-Type: image/jpeg');
    readfile($cacheDir . $imageName);
} else {
    // Generate the image
    $image = imagecreate(200, 200);
    $bgColor = imagecolorallocate($image, 255, 255, 255);
    $textColor = imagecolorallocate($image, 0, 0, 0);
    imagestring($image, 5, 50, 50, 'Generated Image', $textColor);

    // Save the generated image to the cache directory
    imagejpeg($image, $cacheDir . $imageName);

    // Serve the generated image
    header('Content-Type: image/jpeg');
    imagejpeg($image);

    // Clean up resources
    imagedestroy($image);
}