在PHP,包括配置文件(Including config file in PHP)

2019-10-18 04:16发布

我正在开发一个项目,我不能够包含的文件。

我的文件夹结构:

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

我试图访问配置文件是配置/ config.php文件里面在我的模块/主页/ index.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是出方的文件夹结构,但我的项目里面?

Answer 1:

您可以使用absolute path可能是/Myproject/Config/config.php或由上级文件夹浏览,然后将重置您的目录中需要文件../../Config/config.php

所以,你可以管理与包括

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

正如指出include 文档

如果路径定义 - 无论是绝对的(从驱动器盘符或\ Windows上,或/在Unix / Linux系统),或相对于当前目录(开始或...) - include_path中会被完全忽略。 例如,如果一个文件名以../开始,解析器将看在父目录中找到所需的文件。

编辑

让我们来分析包括路径。 我们实际上是在Modules/Home/文件夹。 TE达到根级别,并能得到内部Config我们需要去两级上层文件夹,我们可以做这样做../在我们的例子中每个级别,所以../../ 。 现在,我们在root目录下,我们可以通过导航Config/和得到我们想要的文件config.php 。 现在混合所有一齐将会有../../Config/config.php



Answer 2:

我认为这将工作:

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


Answer 3:

可以做的,是包括以下行到你的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的变体恒定。

PHP的PowerTools的样板这种引导技术的演示。



文章来源: Including config file in PHP