php包含使用子目录时的路径

时间:2016-08-22 19:11:05

标签: php

我正在使用现有网站,其中的文件设置如下:

(的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”。

我有什么选择?

1 个答案:

答案 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');