В настоящее время у меня есть сайт, написанный на php. Я помещаю полную версию сайта в отдельный каталог (например, test001, test002) для целей тестирования …
Файл инициализации init.php
требуется во всех файлах веб-кода со следующей строкой:
require_once $_SERVER['DOCUMENT_ROOT'].'/test002/init.php';
Однако, когда я изменяю тестовый каталог, мне нужно изменить эту строку во всех файлах … Я ищу способ сохранить путь к init.php
, чтобы иметь возможность изменить его только один раз.
$_SESSION
?Сессия не является хорошим решением для этого. Вы можете создать файл конфигурации. тогда вы можете включить, как это
config.php
$file=dirname(__FILE__).'/test002/init.php';
include($file);
в других файлах php
include('config.php');
и вызовите файл конфигурации для всех необходимых вам файлов. как это вам просто нужно изменить путь в конфигурационном файле
Если каждая из папок (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' );
Старый рабочий способ:
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 …)
Делать congig.php
файл и определить константы следующим образом.
<?php
$web_path = "test002/init.php";
define('PATH',$_SERVER['DOCUMENT_ROOT']);
new_path = PATH.'/'.$web_path;
?>