2015-06-27 107 views
1

因此,我在名爲「core」的目錄中有一個名爲「init.php」的初始化文件。在這個init文件裏面,我已經在一個名爲「classes」的目錄中「需要」了所有其他必需的組件文件,因此init.php中有幾行「require_once」。每次我在根目錄下創建一個文件(例如創建「index.php」)時,我必須包含這個文件,即「include core/init.php」。這一切都進展順利,直到我試圖將該init文件包含在另一個目錄中創建的文件中。例如,在一個名爲「levels/index.php」的目錄中。每次將此init文件包含在根目錄以外的目錄中時,我總是收到「包含」錯誤。在PHP中的所有目錄中需要初始化文件

這是我的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'; 

沒有錯誤,但另一PHP文件例如(source.php)在一個名爲「levels」的目錄內觸發了一個錯誤說

Warning:require_once功能/ sanitize.php):未能打開流

這是我的source.php文件看起來像:

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

我希望有這個原因,我將有麻煩維護所有的解決方案我的文件只位於根目錄。有時我想將初始化文件包含在其他目錄中的文件中。先謝謝你。

回答

0

您應該使用絕對路徑。首先定義一條路徑,只有例如:define('ROOT_PATH', 'localshot/'),然後包含文件,如require_once ROOT_PATH . 'core/init.php'

相關問題