how to grab the relative path of a file with php

最后都变了- 提交于 2019-12-20 06:28:41

问题


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?


回答1:


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";



回答2:


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?)



来源:https://stackoverflow.com/questions/54550922/how-to-grab-the-relative-path-of-a-file-with-php

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!