2010-08-02 41 views
2

我剛剛得到一個奇怪的問題。我包括一些文件從我的index.php,現在我得到這個錯誤:PHP「沒有這樣的文件或目錄」 - 但它應該在那裏

require(cfg/cfg.database.inc.php) [function.require]: failed to open stream: No such file or directory in C:\...\index.php on line XX 

奇怪的是,它的工作只是一分鐘前。我再次檢查了該文件名的拼寫。

我所做的:我使用記事本+ +,我看到了我這樣的代碼:

require("cfg/cfg.database.inc.php"); 

我想刪除")之間的空間,讓我感動光標出現,並推動德爾,但它刪除了.php的最後一個p

我刪除了整行並重寫了它,現在我收到文件無法找到的錯誤。我也重新命名了不起作用的文件。子目錄cfg中的所有文件都會出現此錯誤,但不包括其他子目錄中的文件。

任何人都知道我在做什麼錯,或者我能做些什麼來發現問題? 謝謝。

/編輯:我的文件結構

index.php 
cfg/cfg.database.inc.php 
cfg/cfg.other.inc.php 
core/class.user.inc.php 
core/... 

所有core工作,沒有那些從cfg包括

+1

什麼的var_dump(水珠( 'CFG/*'));返回? – 2010-08-02 22:29:41

+1

如果您有奇怪的角色行爲,您是否嘗試在十六進制編輯器中檢查文檔?(可能將其添加到記事本++與http://sourceforge.net/projects/npp-plugins/files/) – Wrikken 2010-08-02 22:31:53

+0

@Alan Storm:array(2){[0] => string(27)「cfg/cfg.database。 inc.php「[1] => string(24)」cfg/cfg.datetime.inc.php「} – opatut 2010-08-02 22:38:32

回答

1

有usualy兩個原因這種行爲

  1. 你的PHP文件和/或文件名具有的渲染到屏幕爲標準,ASCII字母字符,但其實是在另一種編碼一些其他的字母

  2. 您有多個CFG文件夾,而PHP正在尋找錯誤的一個。

試試看看哪個cfg文件夾(相對於您的運行腳本)PHP看到的,以及它在那裏看到的文件。

$my_cfg_files = glob('./*'); 

接下來,嘗試通過迭代循環

header('Content-Type: text/plain'); 
foreach($my_cfg_files as $file) 
{ 
    echo 'trying ' . $file . "\n"; 
    require_once($file); 
} 
exit("\n Done \n"); 

看看它輸出的文件列表需要的文件。複製腳本打印的內容並將其包含在您的require語句中。

+0

似乎是數字2.我重命名了我的文件名,但這次我沒有保留「.php」,就像Windows Explorer建議的一樣。似乎有一些看不見的角色... – opatut 2010-08-02 23:20:04

1

All files in the subdir cfg get this error, but not those in other subdirs.

嘗試:

require("cfg.database.inc.php"); 
+0

不起作用,對不起。你能解釋爲什麼你認爲它應該嗎? – opatut 2010-08-02 22:24:22

+0

因爲如果您已經在cfg中,那麼cfg/cfg.database.inc.php將是cfg/cfg/cfg.database.inc.php 您還可以嘗試require(「/ cfg/cfg.database.inc .PHP「); ? – babonk 2010-08-02 22:26:07

+0

不,我在/,並沒有你的建議工程。我認爲有一些看不見的角色或者像這樣愚蠢的東西... – opatut 2010-08-02 22:32:00

0

有可能是一個空間:

require("cfg.database.inc.php "); 

刪除它:

require("cfg.database.inc.php"); 
相關問題