What is the best practice for obscuring image paths in PHP to prevent revealing folder structure?

To prevent revealing the folder structure of your website, it's best practice to obscure image paths by using PHP to serve images instead of directly linking to them. This can be done by creating a PHP script that reads the image file from a secure directory outside of the web root and then outputs it to the browser. By doing this, users will not be able to see the actual path of the image on the server.

<?php
// Path to secure image directory
$secureImagePath = '/path/to/secure/images/';

// Get image file name from query parameter
$imageName = $_GET['image'];

// Check if file exists in secure directory
if (file_exists($secureImagePath . $imageName)) {
    // Output image with appropriate content type
    header('Content-Type: image/jpeg');
    readfile($secureImagePath . $imageName);
} else {
    // Output error image or handle 404
    header("HTTP/1.0 404 Not Found");
    echo "Image not found";
}