2012-04-27 82 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