2012-12-20 177 views
0

我覺得自己像一個白癡,但我無法弄清楚什麼是錯的,我嘗試過的每個解決方案(列在下面)都失敗了。PHP不搜索包含路徑

問題:

這不起作用:

$settings = file_get_contents('settings'); \\ should search current directory 

哪裏是這個文件在什麼位置?

/apps/foxyman/model/settings 

我曾嘗試:

  1. php.ini更改include_path指令到:

    :/應用/ foxyman

    然後重新啓動Apache的。是的,我確實運行了phpinfo();並驗證它已設置。

  2. 將doc_root指令更改爲php.ini中重複的Apache。

  3. 改變權httpd.conf文件文檔根目錄設置:DocumentRoot "/apps/foxyman"

  4. $settings = file_get_contents('model/settings'); // should search include_path

,沒有這個工作。

是的,我知道有可能的其他解決方案涉及到在每個文件中設置包含路徑,但我不想這樣做 - 我想解決它,而不是再想一遍。

對我來說,也許我只是一個白癡(你應該隨時讓我知道通過告訴我去殺了自己的評論),但它似乎很可笑,PHP無法找到該文件當前目錄AND似乎並未搜索我設置的包含路徑。在你問之前,是的,該文件確實存在。

一件事,這裏是以下方法的輸出:

echo getcwd(); 
echo get_include_path(); 
echo $_SERVER['DOCUMENT_ROOT']; 

/apps/foxyman/model 
.:/apps/foxyman 
/apps/foxyman 
+0

什麼是目錄訪問權限?我的意思是,'/ model' _and_ PHP(= web服務器)可以訪問它的內容嗎? – raina77ow

+0

file_get_contents()在默認情況下不使用include_path,您必須將它作爲第二個參數傳遞給true。 –

+0

此外,請嘗試回顯getcwd()以查看它是否實際上是您的想法。 –

回答

2

默認情況下file_get_contents()使用包括路徑!如果您希望它在第二個參數中使用包含路徑傳遞true

$settings = file_get_contents('settings', true);