我正在使用现有网站,其中的文件设置如下:
(的index.php)
include_once("functions/Functions.php");
...
(的functions.php)
function GetAValue()
{
include_once("settings/settings.php");
}
因此索引文件调用函数文件夹中的函数,并且sql变量和诸如此类的文件存储在设置文件夹中,如下所示:
(folder) functions
(folder) settings
(file) index.php
我的问题是:我想添加一个新的工作目录,移动版。如果我使用include_once("../functions/functions.php");
,当函数尝试包含设置文件时会出错,因为它正在寻找不存在的“mobile / settings / settings.php”。
我有什么选择?
答案 0 :(得分:1)
我总是使用存储在公共根目录中的配置文件。在配置中,我为基本根定义了Constant
,为公共根定义了一个。{/ p>
<?php
// myconfig.php -- stored in the public root aka document root
$direx = explode("/", getcwd());
DEFINE ('BASEROOT', '/'.$direx[1].'/'.$direx[2].'/'); // host/mysite/
DEFINE ('PUBLICROOT', '/'.$direx[1].'/'.$direx[2].'/'.$direx[3].'/'); // host/mysite/public_html/
?>
require
所有页面顶部的配置。
<?php
require_once('myconfig.php'); // called on every page
//example uses
IF (File_Exists(PUBLICROOT.'some_folder/file.txt')) { /* do something */ }
include_once(PUBLICROOT.'some_folder/file.txt');
?>
要在文档根目录/子目录场景中包含配置,您可以使用以下内容。
Require(str_replace("subdir", "", getcwd()).'myconfig.php');