【问题标题】:Root path variable in a PHP projectPHP 项目中的根路径变量
【发布时间】:2016-08-10 07:47:38
【问题描述】:

我创建了一个这样的 php 项目:

  • img
  • js
  • php
    • 配置
      • config.php
      • news.php
      • contact.php

我需要将我的config.php 包含在我的所有文件中news.phpcontact.php

如何避免出现../config/config 这样的相对路径?

我想要一个像php/config/config.php 这样的根路径。

我使用 MAMP 专业版。我应该使用环境变量来保存根路径吗?

【问题讨论】:

    标签: php path


    【解决方案1】:

    在 PHP 中有一个全局变量,其中包含与服务器相关的各种详细信息。它被称为 $_SERVER。它还包含根:

     $_SERVER['DOCUMENT_ROOT']
    

    唯一的问题是这个变量中的条目是由网络服务器提供的,不能保证所有的网络服务器都提供它们。

    【讨论】:

      【解决方案2】:

      在你的根目录下创建一个文件夹。命名它,例如Helpers/。在其中创建一个文件path.php,并在其中放入此代码。

      function base_path($path = "") {
          return realpath(__DIR__ . '/../') . DIRECTORY_SEPARATOR . $path;
      }
      

      然后将此文件包含在每个 Web 文档的顶部,就像您在会话开始时所做的一样,然后您可以在代码中的任何位置使用此功能。像这样

      <?php 
      
      require "Helpers/path.php";
      
      require base_path('php/config/config.php');
      

      【讨论】:

      • 在这种情况下,我是否会遇到与 require "Helpers/path.php" 相同的问题?
      【解决方案3】:

      使用 ShowInfo.php 中的定义创建一个具有根目录绝对路径的常量:

      define('ROOTPATH', DIR); 或 (PHP

      define('ROOTPATH', 目录名(FILE));

      【讨论】:

      • 我需要在一个文件中创建这个常量,并且需要在我的所有文件中包含这个文件?
      【解决方案4】:

      1 找出您的文档根目录。这个值对你所有的脚本都是一样的

      echo $_SERVER['DOCUMENT_ROOT']; exit;
      

      2只要包含config.php,就使用相对于文档根目录的路径(一旦您知道您的文档根目录,请调整下面的行)

      require_once $_SERVER['DOCUMENT_ROOT'].'/php/config/config.php';
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 2017-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多