PHP получает абсолютный путь от URL

У меня есть этот URL на localhost: http://localhost:7777/somesite/sites/default/files/devel-7.x-1.5.zip и хочу получить c:\xampp\htdocs\somesites\default\files\devel-7.x-1.5.zip,

Как уже упоминалось по этому вопросу PHP: получить абсолютный путь из абсолютного URL:

 $path = parse_url($url, PHP_URL_PATH);
echo $_SERVER['DOCUMENT_ROOT'] . $path;

Приведенный выше фрагмент кода должен позволить мне получить фактический путь к файлу. К сожалению, это не работает. При печати $path это возвращает $url вместо somesites\default\files, Может ли это быть, потому что я бегу на localhost:7777?

0

Решение

Вы можете сделать это с помощью серверных переменных:

echo $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
0

Другие решения

Это может быть вызвано тем, что правильный адрес не передается в функцию parse_url. Напечатайте значение $ url перед передачей в функцию parse_url и проверьте, печатает ли оно соответствующее значение. Вы можете передавать что-то вроде этого Http: // Http: // локальный: 7777 / HTTP: // локальный: 7777 / somesite / сайты / по умолчанию / файлы / devel-7.x-1.5.zip в $ url, из-за чего, когда parse_url обрабатывает $ url, он возвращает ваш исходный $ url.

Надеюсь это поможет 🙂

0

Пытаться

$path = parse_url($url);
echo str_replace('/', "\\", $_SERVER['DOCUMENT_ROOT'].$path['host'].$path['path']);
0