我有一个文件的绝对路径,有没有办法获取文件的绝对路径
http://domainname/rootfolder/filename.php
我希望得到像
这样的东西/home/domainname/public_html/foldername/filename.php
答案 0 :(得分:17)
这是最简单的方法:
$path = parse_url('http://domainname/rootfolder/filename.php', PHP_URL_PATH);
//To get the dir, use: dirname($path)
echo $_SERVER['DOCUMENT_ROOT'] . $path;
那将打印出完整的路径。
文档:
答案 1 :(得分:9)
您可以使用the parse_url
function获取网址的本地部分。
将其转换为文件路径,然后要求您知道Web服务器的文档根目录的位置。如果它与运行页面的服务器相同,那么您通常可以从$_SERVER['DOCUMENT_ROOT']
获取该服务器。
它还取决于没有任何东西阻止URL不是直接映射到文件系统(例如mod_rewrite,mod_alias,通过MVC框架路由的URI等)。例如,对于我目前正在处理的系统,如果您要点击 http://example.com/blog/2012/01/01/ ,那么涉及的文件将是< em> /home/user/recall/script/recall.psgi 和 /home/user/recall/root/blog/day.tt 但是DocumentRoot将是 / home /用户/召回/ htdocs中/ )
答案 2 :(得分:0)
试试$_SERVER['DOCUMENT_ROOT']
。假设有一个像
http://example.com/subfolder/somefile.html
并且文件在服务器上的实际位置为
/home/sites/example.com/html/subfolder/somefile.html
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--- $_SERVER['DOCUMENT_ROOT']
答案 3 :(得分:0)
试
$filepath = $_SERVER['DOCUMENT_ROOT'].'/rootfolder/filename.php'
这可能会对你有帮助。
答案 4 :(得分:0)
我发现这可以可靠地工作:
function get_file_path_from_url( $file_url ){
return realpath($_SERVER['DOCUMENT_ROOT'] . parse_url( $file_url, PHP_URL_PATH ));
}