【问题标题】:Get URL of a file on a server with PHP使用 PHP 获取服务器上文件的 URL
【发布时间】:2013-02-09 20:50:00
【问题描述】:

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

Folder0
    Folder1
        needle.php
        Folder2
            Folder3
                script.php

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

while (!file_exists($nameFile)) {
    chdir('..');
    }
return getcwd();

这将返回“Folder0\Folder1\”;

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

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

【问题讨论】:

标签: php url path getcwd


【解决方案1】:
getcwd()

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

获取 DOCUMENT_ROOT
  $_SERVER['DOCUMENT_ROOT'];//  /home/vincent/public_html

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

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

输出:

 http://www.domain.com/folder

【讨论】:

    【解决方案2】:

    您可以使用The RecursiveDirectoryIterator class

    这里有一个很好的tutorial 可能会对你有所帮助

    希望对您有所帮助,如果需要更多帮助,我们很乐意为您提供帮助 :)

    【讨论】:

      【解决方案3】:
      while (!file_exists($nameFile)) {
          chdir('..');
      }
      return "http://".$_SERVER['HTTP_HOST'].str_replace('\\', '/', getcwd());
      

      【讨论】:

        【解决方案4】:

        $basePath="http://hostname.com/"; $fileName="needle.php"; $folderPath="Folder0\Folder1\";

        $path=str_replace("\","/",$folderPath); $pathToFile=$basePath.$path.$fileName;

        回显 $pathToFile;

        用它做一个函数!

        卢锡安

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-03-07
          相关资源
          最近更新 更多