需要PHP中所有目录中的初始化文件


Requiring initialization file in all directories in PHP

所以我在名为"core"的目录中有一个名为"init.php"的初始化文件。在这个init文件中,我在一个名为"classes"的目录中"require"了所有其他必要的组件文件,因此init.php有几行"require_one"。每次我在根目录中创建一个文件(例如创建"index.php"),我都必须包含这个文件,即"include-core/init.php"。在我尝试将这个init文件包含在另一个目录中创建的文件中之前,一切都很顺利。例如,在一个名为"levels/index.php"的目录中。每次我将这个init文件包含在根目录以外的目录中时,我都会收到一个"include"错误。

以下是我的init.php文件的样子:

//load all class files automatically
spl_autoload_register(function($class) {
    require_once 'classes/' . $class . '.php';
});
//include functions
require_once 'functions/sanitize.php';
require_once 'functions/functions.php;

现在,位于根目录的index.php文件如下所示:

include 'core/init.php';

没有显示任何错误,但是另一个名为"levels"的目录中的PHP文件(source.PHP)触发了一个错误,称为

警告:require_sonce(functions/sance.php):无法打开流

以下是我的source.php文件的样子:

include '../../core/init.php';

我希望有一个解决方案,因为我将有麻烦维护我的所有文件,只在根目录。有时我会想把初始化文件包含在其他目录中的一个文件中。提前谢谢。

您应该使用绝对路径。首先定义一个路径,例如:define('ROOT_PATH', 'localshot/'),然后包括像require_once ROOT_PATH . 'core/init.php' 这样的文件