PHP: получить абсолютный путь от абсолютного URL
У меня есть абсолютный путь к файлу, есть ли способ получить абсолютный путь к файлу
http://domainname/rootfolder/filename.php
И я хочу получить что-то вроде
/дома/имя_домена/public_html/имя_папки/имя_файла.php
4 ответа:
Вы можете использовать функцию
parse_url
, чтобы получить локальную часть URL.Преобразование этого в путь к файлу требует, чтобы вы знали, где находится корень документа веб-сервера. Если это тот же сервер, на котором работает страница, то вы обычно можете получить его от
$_SERVER['DOCUMENT_ROOT']
.Это также зависит от того, что ничто не мешает URL-адресу не быть прямым отображением на файловую систему (например, mod_rewrite, mod_alias, URI, маршрутизируемые через MVC рамки и т. д.). Например, для системы, над которой я работаю в данный момент, если вы нажмете http://example.com/blog/2012/01/01/ тогда задействованные файлы будут /home/user/recall/script/recall.psgi и /главная/пользователя/отзыв/корень/блог/день.ТТ, но DocumentRoot так будет /главная/пользователя/отзыв/htdocs в/)
Это самый простой способ:
$path = parse_url('http://domainname/rootfolder/filename.php', PHP_URL_PATH); //To get the dir, use: dirname($path) echo $_SERVER['DOCUMENT_ROOT'] . $path;
Это выведет вам полный путь.
Документация: