如何动态改变绝对路径?

时间:2012-03-22 10:54:36

标签: php apache absolute-path document-root

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

echo $_SERVER['DOCUMENT_ROOT'];

输出如下: -

C:/xampp/htdocs

目前我在命名为“项目”的文件夹中工作,因此我的项目根目录是: -

echo $_SERVER['DOCUMENT_ROOT'].'/project';

输出

C:/xampp/htdocs/project

现在,如果我将项目上传到带有文件夹名称的网络服务器,请说“网站”,我需要更改

echo $_SERVER['DOCUMENT_ROOT'].'/project';
------------------------------------------
to
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'].'/website';
------------------------------------------
or if i upload it in root then
------------------------------------------
echo $_SERVER['DOCUMENT_ROOT'];

我需要将文件存储在不同的文件夹和目录级别....所以有什么方法可以使这个东西变得动态任何技巧?

我希望尽量减少这个障碍,并且一直重命名它可能会浪费大量时间。

一旦我使用/ project then / website并最后直接使用root ...可能是任何技巧,我们可以通过它来绕过这个障碍和声明或东西......所以无论我们上传哪里,我们只需更改文件中的名称它完成了....类似的东西。

2 个答案:

答案 0 :(得分:3)

使用

在root目录中初始化它
dirname(__FILE__)

如果您使用链接目录(将使用原始路径),这将无法正常工作,这在CodeIgniter中是一个无赖的例子

答案 1 :(得分:0)

你可以使用这样的东西

$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';

        }
    }