Reputation: 1864
i am trying to catch the relative path to a file to create a share link.
From my httpdocs
folder on the webserver, my file is here:
jack/single/uploads/folder1/image.jpg
The var $dir . '/' . $file
gives me this output:
uploads/folder1/image.jpg
realpath($dir . '/' . $file
gives me this output:
/home/vhosts/example.com/subdomains/develop3/httpdocs/jack/single/uploads/folder1/image.jpg
What i want to achieve is this output:
`http://develop3.example.com/jack/single/uploads/folder1/image.jpg`
How can i achieve this, so that i can create a share link?
Upvotes: 0
Views: 48
Reputation: 147146
You could use preg_replace
on the output of realpath
to replace everything up to httpdocs
with your site's URL:
echo preg_replace('#^' . preg_quote($_SERVER['DOCUMENT_ROOT']) . '[\\\\/]#', "{$_SERVER['HTTP_HOST']}/", realpath('test6.php')) . "\n";
Upvotes: 2
Reputation: 368
You can use $_SERVER['HTTP_HOST'] to get you site's name:
function get_link($to_file){
return "https://".$_SERVER['HTTP_HOST']."/jack/single/".$to_file;
}
echo get_link($dir . '/' . $file);
Change the function's url parts according to your project (do you use https or http? Will /jack/single always be the parent folder of uploads?)
Upvotes: 0