在PHP中包含配置文件
我正在开发一个项目,我无法包含这些文件。在PHP中包含配置文件
我的文件夹结构:
--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中是出方的文件夹结构,但我的项目里面?
您可以使用absolute path
这可能是/Myproject/Config/config.php
或由上级文件夹浏览,然后将你需要的文件重置目录../../Config/config.php
所以,你可以管理与
include('../../Config/config.php');
至于包括规定在include
documentation
If a path is defined — whether absolute (starting with a drive letter or \ on Windows, or/on Unix/Linux systems) or relative to the current directory (starting with . or ..) — the include_path will be ignored altogether. For example, if a filename begins with ../, the parser will look in the parent directory to find the requested file.
编辑
让我们来分析包含路径。我们其实在Modules/Home/
文件夹中。 te达到根级并可以进入Config
文件夹我们需要走两级上级,我们可以通过为每个级别做../
来做到这一点,所以在我们的案例../../
。现在我们在root
目录中,我们可以浏览Config/
并获取我们期望的文件config.php
。现在混合所有toghter将会有../../Config/config.php
。
我认为这将工作:
include '../../Config/config.php';
没有错误:Warning:include(../../ Config/config.php)[function.include]:未能打开流:没有这样的文件或目录在E:\ wamp \ www \ myproject \ Modules \ Home \ index.php上 – TomPHP
什么你可以做的,就是包括以下行到你的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';
什么你应该这样做,是在您的Modules
文件夹中放入一个名为bootstrap.php
的文件。
代替上面的代码,将以下代码添加到您的索引文件中。
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的变体恒定。
请参阅the PHP PowerTools Boilerplate了解该引导技术的演示。
创建文件路径字符串时,应始终使用PHP内置常量DIRECTORY_SEPARATOR。 –
一旦文件被链接,我将使用各种内置函数。 – TomPHP