PHP - Convertir la ruta del sistema de archivos a URL

A menudo me doy cuenta de que tengo archivos en mis proyectos a los que debo acceder desde el sistema de archivos, así como desde el navegador de los usuarios. Un ejemplo es subir fotos. Necesito acceder a los archivos en el sistema de archivos para poder usar GD para alterar las imágenes o moverlas. Pero mis usuarios también necesitan poder acceder a los archivos desde una URL comoexample.com/uploads/myphoto.jpg.

Debido a que la ruta de carga generalmente corresponde a la URL, he creado una función que parece funcionar la mayor parte del tiempo. Tome estos caminos por ejemplo:

Sistema de archivos /var/www/example.com/uploads/myphoto.jpg

URLhttp://example.com/uploads/myphoto.jpg

Si tuviera una variable configurada para algo como/var/www/example.com/ luego podría restarlo de la ruta del sistema de archivos y luego usarlo como la URL de la imagen.

/**
 * Remove a given file system path from the file/path string.
 * If the file/path does not contain the given path - return FALSE.
 * @param   string  $file
 * @param   string  $path
 * @return  mixed
 */
function remove_path($file, $path = UPLOAD_PATH) {
    if(strpos($file, $path) !== FALSE) {
        return substr($file, strlen($path));
    }
}

$file = /var/www/example.com/uploads/myphoto.jpg;

print remove_path($file, /var/www/site.com/);
//prints "uploads/myphoto.jpg"

¿Alguien sabe de una mejor manera de manejar esto?

Respuestas a la pregunta(11)

Su respuesta a la pregunta