A menudo encuentro que tengo archivos en mis proyectos a los que se debe acceder desde el sistema de archivos y desde el navegador de los usuarios. Un ejemplo es subir fotos. Necesito acceso a los archivos en el sistema de archivos para poder usar GD para alterar las imágenes o moverlas. Pero mis usuarios también deben poder acceder a los archivos desde una URL como example.com/uploads/myphoto.jpg
.PHP - Convertir la ruta del sistema de archivos a la URL
Como la ruta de carga normalmente corresponde a la URL, constituí 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
Si tuviera un conjunto de variables a algo como /var/www/example.com/
, entonces 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?
Gracias. Si bien esto podría ser propenso a errores, es exactamente lo que necesito en mi caso. –