如何使用 php 获取文件的相对路径
how to grab the relative path of a file with php
我正在尝试获取文件的相对路径以创建共享 link。
从网络服务器上我的 httpdocs
文件夹,我的文件在这里:
jack/single/uploads/folder1/image.jpg
var $dir . '/' . $file
给我这个输出:
uploads/folder1/image.jpg
realpath($dir . '/' . $file
给我这个输出:
/home/vhosts/example.com/subdomains/develop3/httpdocs/jack/single/uploads/folder1/image.jpg
我想要实现的是这个输出:
`http://develop3.example.com/jack/single/uploads/folder1/image.jpg`
我怎样才能做到这一点,以便我可以创建共享 link?
您可以使用 $_SERVER['HTTP_HOST'] 获取站点名称:
function get_link($to_file){
return "https://".$_SERVER['HTTP_HOST']."/jack/single/".$to_file;
}
echo get_link($dir . '/' . $file);
根据您的项目更改函数的 url 部分(您使用 https 还是 http?/jack/single 是否始终是上传的父文件夹?)
您可以在 realpath
的输出中使用 preg_replace
将 httpdocs
之前的所有内容替换为您网站的 URL:
echo preg_replace('#^' . preg_quote($_SERVER['DOCUMENT_ROOT']) . '[\\/]#', "{$_SERVER['HTTP_HOST']}/", realpath('test6.php')) . "\n";
我正在尝试获取文件的相对路径以创建共享 link。
从网络服务器上我的 httpdocs
文件夹,我的文件在这里:
jack/single/uploads/folder1/image.jpg
var $dir . '/' . $file
给我这个输出:
uploads/folder1/image.jpg
realpath($dir . '/' . $file
给我这个输出:
/home/vhosts/example.com/subdomains/develop3/httpdocs/jack/single/uploads/folder1/image.jpg
我想要实现的是这个输出:
`http://develop3.example.com/jack/single/uploads/folder1/image.jpg`
我怎样才能做到这一点,以便我可以创建共享 link?
您可以使用 $_SERVER['HTTP_HOST'] 获取站点名称:
function get_link($to_file){
return "https://".$_SERVER['HTTP_HOST']."/jack/single/".$to_file;
}
echo get_link($dir . '/' . $file);
根据您的项目更改函数的 url 部分(您使用 https 还是 http?/jack/single 是否始终是上传的父文件夹?)
您可以在 realpath
的输出中使用 preg_replace
将 httpdocs
之前的所有内容替换为您网站的 URL:
echo preg_replace('#^' . preg_quote($_SERVER['DOCUMENT_ROOT']) . '[\\/]#', "{$_SERVER['HTTP_HOST']}/", realpath('test6.php')) . "\n";