在PHP中包含配置文件

在PHP中包含配置文件,php,configuration,include,configuration-files,include-path,Php,Configuration,Include,Configuration Files,Include Path,我正在开发一个项目,我不能包括文件 我的文件夹结构: --Myproject -----Config ----------config.php -----Includes ----------Images ---------------image.jpg ----------CSS ---------------test.css ----------JS ---------------test.js -----Modules ----------Home ---------------index

我正在开发一个项目,我不能包括文件

我的文件夹结构:

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

我正在尝试访问配置文件,该文件位于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'];
1。
定义(“根“,”目录“/”;
2.
定义(“HTTP”,($\u服务器[“HTTP\u主机”]=“本地主机”)
? "http://localhost/myproject/"
: "http://your_site_name.com/"
);
图片/banner.gif“>
3.
定义('PROJECT_ROOT',getcwd());
4.
$\u服务器['DOCUMENT\u ROOT'];
参考文献:[链接][2]
5.
echo$\u服务器['SERVER\u NAME'];

我怎样才能喜欢一个位于文件夹结构外面但在项目内部的config.php呢?

您可以使用
绝对路径
,它可以是
/Myproject/config/config.php
,或者通过在上层文件夹中导航,然后转到所需文件
。/../config/config.php

因此,您可以设法将

include('../../Config/config.php');
中所述,包括

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

编辑


让我们分析包含路径。我们实际上在
Modules/Home/
文件夹中。te到达根级别,可以进入
Config
文件夹,我们需要向上两级,我们可以通过对每个级别执行
。/
来实现这一点,因此在我们的示例中,
。/../
。现在我们在
根目录中,我们可以导航
Config/
并获得所需的文件
Config.php
。现在,将所有文件混合在一起将有
。/../Config/Config.php
,我认为这将起作用:

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

可以做的是在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';
现在,将其添加到引导文件:

// -----------------------------------------------------------------------
// 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变量都有一个常量


有关此引导技术的演示,请参阅。

当我使用include('../../Config/Config.php');我收到以下错误警告:include(../../Confg/Config.php)[function.include]:无法打开流:第2行的E:\wamp\www\myproject\Modules\Home\index.php中没有此类文件或目录如果我重置目录,它将变得复杂,因为我需要为每个模块提供配置:(@Tomphp包括我在这里显示的方式不会重置您的目录,您将与以前在同一个目录中,您将只包含文件您可以用我的目录结构编辑您的答案,并向我展示如何使用目录重置包含配置文件..这让我感到困惑..抱歉。我确实包含了(“../../config/config.php”);但仍然存在相同的错误,这是我需要在wamp中进行的一些配置吗?创建文件路径字符串时,应始终使用PHP内置的常量目录分隔符。一旦文件链接起来,我将使用所有类型的内置函数。无错误:警告:include(../../Config/Config.PHP)[function.include]:无法打开流:E:\wamp\www\myproject\Modules\Home\index.php在线中没有这样的文件或目录