2011-07-21 251 views
0

我必須在php腳本中包含位於第二級子目錄中的一些文件。 問題是在我的xampp中沒有包含這些文件。 在netbeans中,如果我點擊打開文件的路徑。php包括文件

require_once("../../config/bootstrap.php"); 
require_once("../../config/config.php"); 

可能是什麼問題? 謝謝。

+0

你是直接訪問這個文件還是你也包括它? – binarious

+0

包括...... – michele

+0

然後我的答案應該做的伎倆。 – binarious

回答

2

嘗試

require_once(dirname(__FILE__) . "/../../config/bootstrap.php"); 
require_once(dirname(__FILE__) . "/../../config/config.php"); 

或者在PHP 5.3+

require_once(__DIR__ . "/../../config/bootstrap.php"); 
require_once(__DIR__ . "/../../config/config.php"); 
0

這應該與此目錄樹中很好地工作,假設您正在訪問的公共/大衆/ index.php文件

  • root
    • public
      • 公共
        • 的index.php
    • 配置
      • 的config.php
      • bootstrap.php中
2

您通常不希望在包含文件中包含..你可能想用一個環境值引導你的web應用程序(在Apache中,你可以使用SetEnv來實現這一點),然後從你的webapp,你可以 $dir = getenv('APPLICATION_PATH'); require_once($dir . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'bootstrap.php); 而且,你可以設置APPLICATION_CONFIG_PATH,而不是保存一個DIRECTORY_SEPARATOR。

總結一下。我想盡量避免..的也是硬編碼‘/’(使用環境變量來引導應用程序,並分別DIRECTORY_SEPARATOR)

編輯:忘了提:如果您使用的是PHP 5.3,則可能會使用../ ..與DIR脫離。 '../ ..'。

DIR將解決包含實際運行腳本

+0

你有一些在PHP引導編碼的教程?我會學習它。 – michele

+0

在apache中引導一個php webapp,你可以使用http://httpd.apache.org/docs/1.3/mod/mod_env.html#setenv。這將設置一個環境值,對於獲取代碼的某些「屬性」非常有用。在控制檯應用程序中,您還可以使用環境值,在執行腳本之前設置它們。從PHP,你可以通過使用getenv()和putenv() – marcelog

+0

設置和獲取環境值編輯:忘記提及:如果您使用PHP 5.3,您可能會脫離使用../ ..與.. '../ ..'。 DIR將解決包含實際運行腳本 我不明白你的意思對不起..目錄 – michele

0

docs

以我個人經驗的目錄,我已經找到了從創建總是基於include_path中相對引用最多的一致性。