PHP - 将文件系统路径转换为 URL
2022-08-30 14:37:31
我经常发现我的项目中有需要从文件系统和用户浏览器访问的文件。一个例子是上传照片。我需要访问文件系统上的文件,以便我可以使用GD更改图像或移动它们。但是我的用户还需要能够从 URL 访问文件,例如 .example.com/uploads/myphoto.jpg
由于上传路径通常对应于URL,因此我制作了一个似乎在大多数情况下都有效的函数。以这些路径为例:
File System /var/www/example.com/uploads/myphoto.jpg
如果我将变量设置为类似的东西,那么我可以从文件系统路径中减去它,然后将其用作图像的URL。/var/www/example.com/
/**
* 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"
有谁知道更好的方法来处理这个问题?