Eugen說的是真實的,這是因爲基本路徑與您所包含的腳本不一樣。
另外它似乎從我的測試(因爲我遇到類似的問題),PHP包含()將包含文件時存儲另一個臨時include_path,這就是爲什麼ajax_vote.php可以包括config_mysql.php。爲了說服自己,試着將config_mysql.php移動到你的ajax文件夾中:它會工作相同,並且config.php將能夠包含它(但只有在執行ajax_vote.php時,不是index.php!)。在這種情況下,您有兩個包含路徑:'/ ajax /'和'/'。但是,當你使用一個路徑(不僅僅是一個文件名來包含,而且還要在你的字符串中指定一個文件夾)時,包含路徑只是基於正在執行的腳本(例如:'/ ajax /')。
您可以通過執行修復此問題:
include(dirname(__FILE__).'/language/english.php'); // don't forget the prepended '/'
或者只是:
include('/language/english.php'); // here again the prepended '/'
不過我警告你,我不完全理解爲什麼還沒有第二個方法有效,您可能通過使用第一個與dirname()更安全。我只是發現包括('/ path/to/file')可能是Windows操作系統上的一個錯誤:在Windows上它等於dirname(__ FILE__),但在UNIX上它等於根路徑。所以dirname(__ FILE__)肯定更可靠。
不,在我的情況下,它實際上包括config_mysql.php(我答應!)的基礎文件夾,唯一的問題是與english.php文件,該文件是語言文件夾 – Aleix