2012-04-27 51 views
0

我需要包含一個路徑從一個目錄配置文件在其他scrpits幾個目錄上或下。PHP getcwd()函數與包含或需要在不同的目錄中使用

我的配置文件中有這樣的功能:

$execute_path = getcwd() . "/execute.php"; 

的execute.php文件駐留在同一目錄中的配置文件至極使得它確定,輸出將變爲:

public-html/config-directory/execute.php 

現在,如果在原始目錄之外的目錄中使用相同的函數,它會將getcwd()函數視爲處於該目錄中。

例如,如果從目錄publichtml /一/二/ 3/somefile.php稱之爲如下:

<?php 
include(pathto/config.php) 
echo $execute_path; 
?> 

輸出成爲publichtml /一/二/ 3/execute.php而不是保持publichtml/config-directory/execute.php

我該如何實現我想要的?對不起,很長的解釋。謝謝。

回答

1

包括可以是非常棘手的,爲什麼我的建議是

//config.php 

define("SITE_PATH", "public-html/config-directory"); 


//execute.php 

$execute_path =SITE_PATH . "/execute.php"; 

//run.php 
include_once 'config.php'; 
include_once 'execute.php'; 

echo $execute_path; 
+0

的問題是基於用戶的服務器設置生成的配置文件,而無論他們上載的主(這是一個插件)目錄。這意味着在配置文件中手動定義路徑是行不通的。 – Chris81 2012-04-27 16:58:43

+1

它更安全,因爲它的配置和你不會一直在工作目錄中使用它'getcwd()'只會返回當前的工作目錄 – Baba 2012-04-27 17:00:43

+0

我可以在配置文件被寫入時使用getcwd並按照描述使用它。它不是一個函數,它會變成一個路徑,所以cofig會讀取:$ execute_path =「path/execute.php」 – Chris81 2012-04-27 17:03:32