2015-08-21 9 views
0

У меня есть этот 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

Как уже говорилось по этому вопросу PHP: Get absolute path from absolute 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

Попробуйте

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

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

Надеюсь, что это поможет :)