как получить относительный путь к файлу с php - PullRequest
0 голосов
/ 06 февраля 2019

Я пытаюсь поймать относительный путь к файлу для создания ссылки на общий ресурс.Из моей папки 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`

Как мне добиться этого, чтобы я мог создать ссылку для общего доступа?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать preg_replace на выходе realpath, чтобы заменить все до httpdocs URL вашего сайта:

echo preg_replace('#^' . preg_quote($_SERVER['DOCUMENT_ROOT']) . '[\\\\/]#', "{$_SERVER['HTTP_HOST']}/", realpath('test6.php')) . "\n";
0 голосов
/ 06 февраля 2019

Вы можете использовать $ _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? Will / jack / singleвсегда быть родительской папкой загрузок?)

...