PHP:从绝对URL获取绝对路径

Tar*_*ziz 7 php path absolute

我有一个文件的绝对路径,有没有办法获得文件的绝对路径

http://domainname/rootfolder/filename.php
Run Code Online (Sandbox Code Playgroud)

我想得到类似的东西

/home/domainname/public_html/foldername/filename.php

小智 17

这是最简单的方法:

$path = parse_url('http://domainname/rootfolder/filename.php', PHP_URL_PATH);

//To get the dir, use: dirname($path)

echo $_SERVER['DOCUMENT_ROOT'] . $path;
Run Code Online (Sandbox Code Playgroud)

这将打印你的完整路径.

文档:

parse_url

DOCUMENT_ROOT

目录名


Que*_*tin 9

您可以使用parse_url函数获取URL的本地部分.

将其转换为文件路径则需要您知道Web服务器的文档根目录的位置.如果它与运行页面的服务器相同,那么通常可以从中获取$_SERVER['DOCUMENT_ROOT'].

它还取决于没有任何东西阻止URL不是直接映射到文件系统(例如mod_rewrite,mod_alias,通过MVC框架路由的URI等).例如,对于我目前正在处理的系统,如果您要访问http://example.com/blog/2012/01/01/,那么涉及的文件将是/ home/user/recall/script /recall.psgi/home/user/recall/root/blog/day.tt但DocumentRoot将是/ home/user/recall/htdocs /)