Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何动态更改绝对路径?_Php_Apache_Absolute Path_Document Root - Fatal编程技术网

Php 如何动态更改绝对路径?

Php 如何动态更改绝对路径?,php,apache,absolute-path,document-root,Php,Apache,Absolute Path,Document Root,这是我们为绝对路径键入的内容:- echo $_SERVER['DOCUMENT_ROOT']; 输出如下:- C:/xampp/htdocs 目前我正在一个名为“项目””的文件夹中工作,因此我的项目根目录是:- echo $_SERVER['DOCUMENT_ROOT'].'/project'; 输出将是 C:/xampp/htdocs/project 现在,如果我用文件夹名将项目上载到web服务器,请说“网站”,我需要更改 echo $_SERVER['DOCUMENT_ROOT']

这是我们为绝对路径键入的内容:-

echo $_SERVER['DOCUMENT_ROOT'];
输出如下:-

C:/xampp/htdocs
目前我正在一个名为“项目””的文件夹中工作,因此我的项目根目录是:-

echo $_SERVER['DOCUMENT_ROOT'].'/project';
输出将是

C:/xampp/htdocs/project
现在,如果我用文件夹名将项目上载到web服务器,请说“网站”,我需要更改

echo $_SERVER['DOCUMENT_ROOT'].'/project';
------------------------------------------
to
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'].'/website';
------------------------------------------
or if i upload it in root then
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'];
我需要在不同的文件夹和目录级别上存储文件。。。。那么,有没有办法让这个东西充满活力呢

我想尽量减少这个障碍,因为改名可能会造成大量的时间浪费


一旦我使用了/project,然后是/website,最后是直接使用root。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。类似于它的东西。

使用

dirname(__FILE__)

如果您使用链接目录(将使用原始路径),这将不会像您预期的那样工作,这是CodeIgniter中的一个麻烦,例如

使用

dirname(__FILE__)

如果您使用链接目录(将使用原始路径),这将不会像您预期的那样工作,这在CodeIgniter中是一个麻烦,例如

您可以使用类似的东西

$environments = array(
    'localhost' => 'development',
    'example.com' => 'production',
);

$active_environment = 'development';

foreach( $environments as $key => $value ){

    if( stristr( $_SERVER['SERVER_NAME'], $key ) ){
        $active_environment = $value;
        break;
    }
}

define( 'ENVIRONMENT', $active_environment );

    function getRoot(){

        switch( ENVIRONMENT ){
            case 'production' : return $_SERVER['DOCUMENT_ROOT'].'/website';
            case 'development' : 
            case default: return $_SERVER['DOCUMENT_ROOT'].'/project';

        }
    }

你可以用这样的东西

$environments = array(
    'localhost' => 'development',
    'example.com' => 'production',
);

$active_environment = 'development';

foreach( $environments as $key => $value ){

    if( stristr( $_SERVER['SERVER_NAME'], $key ) ){
        $active_environment = $value;
        break;
    }
}

define( 'ENVIRONMENT', $active_environment );

    function getRoot(){

        switch( ENVIRONMENT ){
            case 'production' : return $_SERVER['DOCUMENT_ROOT'].'/website';
            case 'development' : 
            case default: return $_SERVER['DOCUMENT_ROOT'].'/project';

        }
    }

嘿,谢谢你的指导,我已经编辑了我的问题一点,请重新考虑。。。。谢天谢地,当项目的生命周期将其托管在多台机器上时,我们使用这种方法—localhost、dev、qa、stage和production。然后,所有配置设置都基于
环境
的值。现在,如果你只需要目录,
dirname(\uuuu文件)
方法是最好的。但是如何使用
dirname(\uu文件)
?嘿,谢谢你的指导,我已经编辑了我的问题,请重新考虑。。。。谢天谢地,当项目的生命周期将其托管在多台机器上时,我们使用这种方法—localhost、dev、qa、stage和production。然后,所有配置设置都基于
环境
的值。现在,如果您只需要目录,
dirname(\uuuu文件)
方法是最好的。但是如何使用
dirname(\uu文件)
?我的问题是,我曾经使用过/project,然后是/website,最后是直接使用root。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。这就是漏洞所在,你不再声明$\u SERVER['DOCUMENT\u ROOT']./project'或类似的东西,你使用这个项目根目录,并且不再需要在任何环境下编辑它。让我们看看我的问题是,我曾经使用过/project,然后是/website,最后是直接到根目录。。。可能是我们可以绕过这个障碍的任何把戏,或者是某种声明之类的东西。。所以,无论我们上传到哪里,我们只需更改文件中的一个名称,它就完成了。。。。这就是漏洞所在,你不再声明$\u SERVER['DOCUMENT\u ROOT']./project'或类似的东西,而是使用这个项目根,不必再在任何环境中编辑它让我们