我在我的所有目录中包含一个或多个级别深度的文件时遇到问题。
我有像
这样的目录结构=>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
文件,或者必须根据目录深度更改包含路径。有没有我在每个文件中使用一个函数自动查找目录深度并自动包含该文件的解决方案?
答案 0 :(得分:1)
您可以使用
这样的相对路径调用文件 => 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';
答案 1 :(得分:1)
使用以下函数从目录深度获取路径
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;
}
}