在PHP中包含配置文件

时间:2013-05-18 10:41:08

标签: php configuration include configuration-files include-path

我正在开发一个我无法包含文件的项目。

我的文件夹结构:

--Myproject
-----Config
----------config.php
-----Includes
----------Images
---------------image.jpg
----------CSS
---------------test.css
----------JS
---------------test.js
-----Modules
----------Home
---------------index.php
----------Contact 
----------MyPage

enter image description here

我正在尝试访问我的Modules / Home / index.php中Config / config.php中的配置文件

但我无法包含配置文件?

我试过了:

1.
define("ROOT", __DIR__ ."/");

2.
define("HTTP", ($_SERVER["HTTP_HOST"] == "localhost")
   ? "http://localhost/myproject/"
   : "http://your_site_name.com/"
);
<img src="<?php print HTTP; ?>images/banner.gif">

3.
define('PROJECT_ROOT', getcwd());

4.
$_SERVER['DOCUMENT_ROOT'];

Ref: [link][2]

5.
echo $_SERVER['SERVER_NAME'];

我怎么能喜欢在文件夹结构之外但在我的项目中的config.php?

3 个答案:

答案 0 :(得分:1)

您可以使用可能absolute path的{​​{1}}或通过在上一级文件夹中导航然后转到您的需要文件/Myproject/Config/config.php

来重置您的目录

所以你可以设法包含

../../Config/config.php

include('../../Config/config.php'); documentation

中所述
  

如果定义了路径 - 是否绝对(在Windows上以驱动器号或\开头,   或/在Unix / Linux系统上)或相对于当前目录(以。或..开头)    - include_path将被完全忽略。例如,如果文件名以。开头   ../,解析器将查找父目录以查找请求的文件。

已编辑

让我们分析一下包含路径。我们实际上在include文件夹中。如果达到根级别并且可以进入Modules/Home/文件夹,我们需要进入两级,我们可以通过为每个级别执行Config来完成此操作,因此在我们的案例../中。现在我们位于../../目录中,我们可以浏览root并获取所需的文件Config/。现在混合所有toghter将有config.php

答案 1 :(得分:1)

我认为这会奏效:

include '../../Config/config.php';

答案 2 :(得分:1)

可以做什么,在index.php路径中包含以下几行:

define("LOCAL_PATH_MODULES", dirname(__DIR__));
define("LOCAL_PATH_APP", dirname(LOCAL_PATH_MODULES));
define("LOCAL_PATH_CONFIG", MODULES_PATH . DIRECTORY_SEPARATOR . 'config');
require LOCAL_PATH_CONFIG . DIRECTORY_SEPARATOR . 'config.php';

应该做什么,将bootstrap.php文件夹中的文件名为Modules

而不是上面的代码,将以下代码添加到索引文件中。

define("LOCAL_PATH_BOOTSTRAP", dirname(__DIR__));
require dirname(__DIR__) . 'bootstrap.php';

现在,将其添加到您的bootstrap文件中:

// -----------------------------------------------------------------------
// DEFINE SEPERATOR ALIASES
// -----------------------------------------------------------------------
define("URL_SEPARATOR", '/');
define("DS", DIRECTORY_SEPARATOR);
define("PS", PATH_SEPARATOR);
define("US", URL_SEPARATOR);

// -----------------------------------------------------------------------
// DEFINE ROOT PATHS
// -----------------------------------------------------------------------
define("RELATIVE_PATH_ROOT", '');
define("LOCAL_PATH_ROOT", $_SERVER["DOCUMENT_ROOT"]);
define("HTTP_PATH_ROOT",
        isset($_SERVER["HTTP_HOST"]) ?
        $_SERVER["HTTP_HOST"] : (
        isset($_SERVER["SERVER_NAME"]) ?
        $_SERVER["SERVER_NAME"] : '_UNKNOWN_'));

// -----------------------------------------------------------------------
// DEFINE RELATIVE PATHS
// -----------------------------------------------------------------------
define("RELATIVE_PATH_APP", dirname(LOCAL_PATH_BOOTSTRAP));
define("RELATIVE_PATH_LIBRARY", RELATIVE_PATH_APP . DS . 'Lib');
define("RELATIVE_PATH_ADMIN", RELATIVE_PATH_APP . DS . 'Admin');
define("RELATIVE_PATH_CONFIG", RELATIVE_PATH_APP . DS . 'Config');
define("RELATIVE_PATH_MODULES", RELATIVE_PATH_APP . DS . 'Modules');
define("RELATIVE_PATH_ASSET", RELATIVE_PATH_APP . DS . 'Includes');
define("RELATIVE_PATH_ASSET_IMG", RELATIVE_PATH_ASSET . DS . 'Images');
define("RELATIVE_PATH_ASSET_CSS", RELATIVE_PATH_ASSET . DS . 'CSS');
define("RELATIVE_PATH_ASSET_JS", RELATIVE_PATH_ASSET . DS . 'JS');

// -----------------------------------------------------------------------
// DEFINE LOCAL PATHS
// -----------------------------------------------------------------------
define("LOCAL_PATH_APP", LOCAL_PATH_ROOT . RELATIVE_PATH_APP);
define("LOCAL_PATH_LIBRARY", LOCAL_PATH_ROOT . RELATIVE_PATH_LIBRARY);
define("LOCAL_PATH_ADMIN", LOCAL_PATH_ROOT . RELATIVE_PATH_ADMIN);
define("LOCAL_PATH_CONFIG", LOCAL_PATH_ROOT . RELATIVE_PATH_CONFIG);
define("LOCAL_PATH_MODULES", LOCAL_PATH_ROOT . RELATIVE_PATH_MODULES);
define("LOCAL_PATH_ASSET", LOCAL_PATH_ROOT . RELATIVE_PATH_ASSET);
define("LOCAL_PATH_ASSET_IMG", LOCAL_PATH_ROOT . RELATIVE_PATH_ASSET_IMG);
define("LOCAL_PATH_ASSET_CSS", LOCAL_PATH_ROOT . RELATIVE_PATH_ASSET_CSS);
define("LOCAL_PATH_ASSET_JS", LOCAL_PATH_ROOT . RELATIVE_PATH_ASSET_JS);

// -----------------------------------------------------------------------
// DEFINE URL PATHS
// -----------------------------------------------------------------------

define("HTTP_PATH_APP", HTTP_PATH_ROOT . RELATIVE_PATH_APP);
define("HTTP_PATH_LIBRARY", false);
define("HTTP_PATH_ADMIN", false);
define("HTTP_PATH_CONFIG", false);
define("HTTP_PATH_MODULES", false);
define("HTTP_PATH_ASSET", HTTP_PATH_ROOT . RELATIVE_PATH_ASSET);
define("HTTP_PATH_ASSET_IMG", HTTP_PATH_ROOT . RELATIVE_PATH_ASSET_IMG);
define("HTTP_PATH_ASSET_CSS", HTTP_PATH_ROOT . RELATIVE_PATH_ASSET_CSS);
define("HTTP_PATH_ASSET_JS", HTTP_PATH_ROOT . RELATIVE_PATH_ASSET_JS);

现在,您的应用程序中最重要路径的本地和HTTP变体都有一个常量。

有关此引导技术的演示,请参阅the PHP PowerTools Boilerplate