使用 PHP 获取服务器上文件的 URL

sbi*_*nko 0 php url path getcwd

假设我想在脚本的父目录之一中找到一个文件。考虑这个文件树:

Folder0
    Folder1
        needle.php
        Folder2
            Folder3
                script.php
Run Code Online (Sandbox Code Playgroud)

我正在运行script.php,我需要找到哪个目录包含needle.php. 我这样做:

while (!file_exists($nameFile)) {
    chdir('..');
    }
return getcwd();
Run Code Online (Sandbox Code Playgroud)

这将返回“Folder0\Folder1\”;

将此路径转换为该文件的 URL 的正确方法是什么?(例如`http://hostname.com/Folder0/Folder1/needle.php"

或者有没有更好的方法来获取服务器上文件的 URL?

moh*_*pur 5

getcwd()
Run Code Online (Sandbox Code Playgroud)

从服务器根目录为您提供当前目录,例如/home/vincent/public_html/folder您可以通过以下方式获得 DOCUMENT_ROOT

  $_SERVER['DOCUMENT_ROOT'];//  /home/vincent/public_html
Run Code Online (Sandbox Code Playgroud)

您必须从 getcwd 的第一个中删除 DOCUMENT_ROOT 并使用主机名连接。像这样

  echo str_replace("\\",'/',"http://".$_SERVER['HTTP_HOST'].substr(getcwd(),strlen($_SERVER['DOCUMENT_ROOT'])));
Run Code Online (Sandbox Code Playgroud)

输出:

 http://www.domain.com/folder
Run Code Online (Sandbox Code Playgroud)