2009-10-09 37 views
0

我正在一個網站上工作,我在這裏包含了網站的一部分,這些網站在它自己的子目錄中的多個位置被調用。我在所述目錄中創建了一個文件,並試圖將其包含在一個文件中,但由於某種原因,這種文件不工作。這是該文件中的代碼。找不到require_once的PHP文件,其他人都在同一個目錄

<?php 

require_once("a_file.php"); //this file loads 
require_once("another_file.php"); //so does this one 
require_once("problem_file.php"); //this one does not. 

echo foo('I exist'); 

?> 

以及未找到該文件的代碼。

<?php 

function foo($string) { 
if ($string) { 
    return $string; 
    } 
} 

?> 

該文件的拼寫驗證在包含require和被調用文件的文件中都是正確的。 .htaccess文件中的包含路徑是正確的(否則沒有必要的文件會在沒有指定完整路徑的情況下加載。錯誤消息是「無法打開流:沒有這樣的文件或目錄」。所有權限對於在包括目錄中的文件。

有沒有其他人遇到了這個問題?

+0

嘗試在所有文件上執行file_exists並查看問題文件是否返回true或false。 – 2009-10-09 04:02:04

+0

返回爲false,但拼寫正確,文件位於所有其他文件所在的文件夾中,並且它們都返回true。這就像PHP有選擇性地不知道它出於某種未知的原因。 – canadiancreed 2009-10-09 14:01:32

回答

2

你有在error_log中的任何錯誤?這可能是第三檔有一些未發現更多的require_once。

您可以嘗試使用$_SERVER['DOCUMENT_ROOT']來獲取您的根目錄並將其用於您的要求。

+0

這可能有助於表明是的。原始帖子已更新。使用$ _SERVER ['DOCUMENT_ROOT']可以工作,但它不能解釋爲什麼前面的其他兩個按預期工作,這是神祕的。如果這是htaccess包含路徑的問題,所有應該失敗? – canadiancreed 2009-10-09 01:06:49

0

快速知道它是否來自文件內容的方法是將其粘貼到主文件中。

如果該測試沒有給出任何東西,確保PHP有足夠的權限來讀取相關文件。

0

是否合理假設不包含的真實文件是而不是稱爲problem_file.php?如果是這樣,那麼也許你的文件名包含需要轉義的字符(如空格)。

+0

你的權利,但該文件設置爲列出,又名兩個單詞與_分開它們。沒有空格或任何其他特殊字符。 – canadiancreed 2009-10-09 02:09:51

相關問題