переменные сеанса — Сохранить путь глобально на сайте php?

В настоящее время у меня есть сайт, написанный на php. Я помещаю полную версию сайта в отдельный каталог (например, test001, test002) для целей тестирования …

Файл инициализации init.php требуется во всех файлах веб-кода со следующей строкой:

require_once $_SERVER['DOCUMENT_ROOT'].'/test002/init.php';

Однако, когда я изменяю тестовый каталог, мне нужно изменить эту строку во всех файлах … Я ищу способ сохранить путь к init.php, чтобы иметь возможность изменить его только один раз.

  • Как я могу этого достичь?
  • Должен ли я использовать $_SESSION ?

1

Решение

Сессия не является хорошим решением для этого. Вы можете создать файл конфигурации. тогда вы можете включить, как это
config.php

$file=dirname(__FILE__).'/test002/init.php';
include($file);

в других файлах php

include('config.php');

и вызовите файл конфигурации для всех необходимых вам файлов. как это вам просто нужно изменить путь в конфигурационном файле

1

Другие решения

Если каждая из папок (test001,test002 и т. д.) init.php файл и если каждый init.php отличается, то вы могли бы использовать магическую константу __DIR__

require_once( __DIR__ . "\init.php" );

Если init.php то же самое в разных тестовых папках, то лучше поставить init.php где-нибудь с этими папками и используйте общий путь включения.

set_include_path( $_SERVER['DOCUMENT_ROOT'].'/config/' );
require_once( 'init.php' );
1

Старый рабочий способ:

require_once('init.php');
//This is for all files in the same directory

require_once('../init.php');
//This is for all files in a directory 1 lvl under the init.

require_once('../../init.php');
//This is for all files in a directory 2 lvl under the init. .. And so on

Нет смысла использовать что-либо еще, если все файлы находятся в 1 базовом каталоге (например, test001, test002 …)

1

Делать congig.php файл и определить константы следующим образом.

<?php

$web_path = "test002/init.php";

define('PATH',$_SERVER['DOCUMENT_ROOT']);

new_path = PATH.'/'.$web_path;

?>
0
По вопросам рекламы [email protected]