Как абсолютный путь может быть изменен динамически? - PullRequest
0 голосов
/ 22 марта 2012

Это то, что мы вводим для Абсолютного пути: -

echo $_SERVER['DOCUMENT_ROOT'];

Вывод следующий: -

C:/xampp/htdocs

В настоящее время я работаю в папке с именами " project ", поэтому мой корень проекта: -

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 затем / website и, наконец, прямо в root ... mayбыть любой хитростью, с помощью которой мы можем обойти это препятствие и что-то вроде декларации или чего-то подобного ... Так что, где бы мы ни загружали, мы просто меняем имя в файле и все готово… что-то вроде этого.

Ответы [ 2 ]

3 голосов
/ 22 марта 2012

Инициализируйте его в корневом каталоге с помощью

dirname(__FILE__)

Это не будет работать так, как вы ожидаете, если вы используете связанный каталог (будет использоваться оригинальный путь), что является обломом в CodeIgniter, например

0 голосов
/ 22 марта 2012

Вы можете использовать что-то вроде этого

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

        }
    }
...