【问题标题】:PHP get absolute path from URLPHP从URL获取绝对路径
【发布时间】:2015-11-15 02:04:31
【问题描述】:

我在 localhost 上有这个 URL:http://localhost:7777/somesite/sites/default/files/devel-7.x-1.5.zip 并想获得 c:\xampp\htdocs\somesites\default\files\devel-7.x-1.5.zip

正如在这个问题上提到的PHP: Get absolute path from absolute URL

 $path = parse_url($url, PHP_URL_PATH);
 echo $_SERVER['DOCUMENT_ROOT'] . $path;

上面的 sn-p 应该让我得到文件的实际路径。不幸的是,这不起作用。打印$path 时,它返回$url 而不是somesites\default\files。这可能是因为我在 localhost:7777 上运行它吗?

【问题讨论】:

    标签: php url absolute-path parse-url


    【解决方案1】:

    您可以使用服务器变量来做到这一点:

    echo $_SERVER['DOCUMENT_ROOT'] . $_SERVER['REQUEST_URI'];
    

    【讨论】:

      【解决方案2】:

      试试

      $path = parse_url($url);
      echo str_replace('/', "\\", $_SERVER['DOCUMENT_ROOT'].$path['host'].$path['path']);
      

      【讨论】:

        【解决方案3】:

        这可能是因为没有将正确的 url 传递给 parse_url 函数。在传递给 parse_url 函数之前打印 $url 值并检查它是否正在打印适当的值。您可能会在 $url 中传递类似 http://http://localhost:7777/http://localhost:7777/somesite/sites/default/files/devel-7.x-1.5.zip 的内容,因为当 parse_url 处理 $url 时,它会返回您的原始 $url。

        希望这会有所帮助:)

        【讨论】:

          猜你喜欢
          • 2012-08-27
          • 2016-07-23
          • 2021-10-18
          • 2011-02-07
          • 1970-01-01
          • 2022-06-10
          • 2011-04-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多