PHP getcwd()函数,用于不同目录中的include或require

PHP getcwd()函数,用于不同目录中的include或require,php,include-path,getcwd,Php,Include Path,Getcwd,我需要在一个目录中包含一个配置文件的路径,在另一个SCRP上包含几个向上或向下的目录 我的配置文件具有如下功能: $execute_path = getcwd() . "/execute.php"; execute.php文件与config文件位于同一个目录中,该文件使其正常运行,输出将变为: public-html/config-directory/execute.php 现在,如果在原始目录之外的目录中使用相同的函数,它会将getcwd()函数视为在该目录中 例如,如果从目录public

我需要在一个目录中包含一个配置文件的路径,在另一个SCRP上包含几个向上或向下的目录

我的配置文件具有如下功能:

$execute_path = getcwd() . "/execute.php";
execute.php文件与config文件位于同一个目录中,该文件使其正常运行,输出将变为:

public-html/config-directory/execute.php
现在,如果在原始目录之外的目录中使用相同的函数,它会将getcwd()函数视为在该目录中

例如,如果从目录public html/one/two/three/somefile.php调用它,如下所示:

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

输出变成publichtml/one/two/three/execute.php,而不是保持publichtml/config目录/execute.php


我怎样才能在这里实现我想要的?对不起,解释得太长了。谢谢。

包含可能非常棘手,为什么我的建议是

//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;

问题在于,配置文件是根据用户服务器设置生成的,无论他们在哪里上传主目录(这是一个插件)都是如此。这意味着在配置文件中手动定义路径将不起作用。它更安全,因为它的配置文件和您不会一直在工作目录中使用它
getcwd()
将只返回当前工作目录。我可以在编写配置文件时使用getcwd,并按照您的描述使用它。它不是一个函数,而是一个路径,因此cofig将读取:$execute\u path=“path/execute.php”
basename(\uuuu DIR\uuu)。“/config.php
将获取父目录或
基名称(_文件__)。”/config.php
当前目录运行基名称两次。。您知道我不知道您当前的设置。但是我建议您知道安装路径。请将其用于
basename
dirname
配置路径,然后保存设置