У меня проблема с включением файла во все мои каталоги с одним или несколькими уровнями глубины.
У меня есть структура каталогов, как
=>public_html=>first_dir=>index.php
=>public_html=>first_dir=>second_dir=>index.php
=>public_html=>first_dir=>second_dir=>thired_dir=>index.php
Теперь я хочу включить config.php
файл во всех index.php
они находятся в разных каталогах — 2 с разным уровнем глубины. И мой config.php
существует в корневой папке.
Сейчас я должен разместить config.php
файл в каждой папке или должны изменить путь включения в зависимости от глубины каталога. Есть ли решение, в котором я использую одну функцию в каждом файле, которая автоматически находит глубину каталога и автоматически включает этот файл?
Используйте следующую функцию, чтобы получить путь из глубины каталога
function get_include_path($file_name)
{
$folder_depth = substr_count($_SERVER["PHP_SELF"] , "/");
$directory_level = 1; //If file exist in folder after root use 2
if($folder_depth == false)
{
$folder_depth = 1;
}
return str_repeat("../", $folder_depth - $directory_level).$file_name;
}
}
Вы можете вызывать файлы, используя относительный путь, как это для
=> public_html => first_dir => index.php => include("../config.php");
=> public_html => first_dir => second_dir => index.php => include("../../config.php");
=> public_html => first_dir => second_dir => thired_dir => index.php => include("../../../config.php");
ИЛИ Вы также можете позвонить во все файлы, как это
include $_SERVER['DOCUMENT_ROOT'] . '/config.php';