【问题标题】:PHP absolute root path and root urlPHP 绝对根路径和根 url
【发布时间】:2013-02-04 19:13:26
【问题描述】:

我正在尝试定义我的应用程序的绝对根路径和根 url。 我试过this,但我还不能理解。

我在root 文件夹中创建了config.inc.php,并在答案中添加了代码。 此外,我在root 中有文件index.php,其中包含config.inc.php,并且常量很好。但我在${ROOT}/example/file.php 中有另一个文件,其中还包含config.inc.php,但根 url 最后包含示例文件夹。

应用结构是:

config.inc.php
index.php
example/file.php

我怎样才能始终拥有我的应用程序的绝对根路径和根 url?

谢谢!

【问题讨论】:

    标签: php


    【解决方案1】:

    绝对根路径:

    $_SERVER['DOCUMENT_ROOT']
    

    根文件夹的路径:

    dirname($_SERVER['PHP_SELF'])
    

    【讨论】:

    • 似乎 dirname($_SERVER['PHP_SELF']) 是最好用的,因为它既可以用于附加到 URL 的开头,也可以用于附加到包含文件......虽然它不是创建一个“绝对”的 url/路径,它创建一个相对路径,如果你把它放在根文件夹的配置文件中,它可以在任何服务器上工作。
    • define('ROOT', dirname($_SERVER['PHP_SELF']));
    【解决方案2】:

    我一直在我的 php 应用程序中使用以下代码:

    ** config.php **

    $base = str_replace(
        $_SERVER['DOCUMENT_ROOT'],
        '',
        realpath(dirname(__FILE__)));
    
    $base = ($base == '') ? '/' : '';
    

    你可以从任何地方包含这个文件,它会给出config.php所在文件夹的基本URI。

    【讨论】:

      【解决方案3】:

      您可以在配置文件中手动输入绝对和根 url,当包含它时,他会为您提供一个具有绝对和根 url 的变量。对于根目录,您可以使用$_SERVER['DOCUMENT_ROOT']

      【讨论】:

      • 每次在不同的服务器上部署应用程序时都更改配置的做法被认为是不好的做法?
      • 如果你设置了一个设置为 $_SERVER['DOCUMENT_ROOT'] 的变量,你不需要在其他服务器上的每个新部署上更改它,因为他在该服务器上获得了一个文档根目录。
      【解决方案4】:

      如果您在 Windows 上处理文件,那么您可能需要同时使用两者 喜欢

      $full_path = $_SERVER['DOCUMENT_ROOT'].dirname($_SERVER['PHP_SELF']);
      

      【讨论】:

        猜你喜欢
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 2011-11-15
        • 1970-01-01
        • 2012-08-27
        • 2010-12-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多