PHP Dynamic включает в себя текущий путь к файлу

Я хочу найти метод для включения некоторых файлов на основе текущего пути к файлу. Например:

У меня есть «website.com/templates/name1/index.php», этот «index.php должен быть уникальным файлом, который я буду использовать во многих разных каталогах на разных глубинах, поэтому я хочу сделать код универсальным, нужно что-то изменить в этом файле.

Поэтому, если этот «index.php» находится в

" website.com /templates/name1/index.php"

чем он должен содержать файл, расположенный здесь:

" website.com/content/templates/name1/content.php "

другой пример:

" website.com /templates/name2/index.php"

чем он должен содержать файл, расположенный здесь:

" website.com/content/templates/name2/content.php "

Также я хочу перерасход « Warning: include_once () [function.include-once]: http: // оболочка отключена в конфигурации сервера allow_url_include = 0 « вид ошибки », потому что отключен и небезопасен ..

Есть ли способ достичь этого? Спасибо!

Я думаю, вам нужно использовать __FILE__ (он имеет два символа подчеркивания в начале и в конце имени) и константы DIRECTORY_SEPARATOR для работы с файлами на основе текущего пути к файлу.

Например:

<?php // in this var you will get the absolute file path of the current file $current_file_path = dirname(__FILE__); // with the next line we will include the 'somefile.php' // which based in the upper directory to the current path include(dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'somefile.php'); 

Использование константы DIRECTORY_SEPARATOR более безопасно, чем использование символов «/» (или «\» ), поскольку разделители каталогов Windows и * nix различны, и ваш интерпретатор будет использовать правильное значение на разных платформах.

 <?php if (isset($_GET['service'])) { include('subContent/serviceMenu.html'); } else if (isset($_GET['business'])) { include('subContent/business_menu.html'); } else if (isset($_GET['info'])) { include('subContent/info_menu.html'); } else { include('subContent/banner.html'); } ?> <a href="http://localhost/yourpage.php?service" /> в <?php if (isset($_GET['service'])) { include('subContent/serviceMenu.html'); } else if (isset($_GET['business'])) { include('subContent/business_menu.html'); } else if (isset($_GET['info'])) { include('subContent/info_menu.html'); } else { include('subContent/banner.html'); } ?> <a href="http://localhost/yourpage.php?service" /> в <?php if (isset($_GET['service'])) { include('subContent/serviceMenu.html'); } else if (isset($_GET['business'])) { include('subContent/business_menu.html'); } else if (isset($_GET['info'])) { include('subContent/info_menu.html'); } else { include('subContent/banner.html'); } ?> <a href="http://localhost/yourpage.php?service" /> в <?php if (isset($_GET['service'])) { include('subContent/serviceMenu.html'); } else if (isset($_GET['business'])) { include('subContent/business_menu.html'); } else if (isset($_GET['info'])) { include('subContent/info_menu.html'); } else { include('subContent/banner.html'); } ?> <a href="http://localhost/yourpage.php?service" /> в <?php if (isset($_GET['service'])) { include('subContent/serviceMenu.html'); } else if (isset($_GET['business'])) { include('subContent/business_menu.html'); } else if (isset($_GET['info'])) { include('subContent/info_menu.html'); } else { include('subContent/banner.html'); } ?> <a href="http://localhost/yourpage.php?service" /> 

Я бы просто сделал что-то просто:

 $dir = str_replace('website.com/','website.com/content/',__DIR__); include "$dir/content.php"; 

И ваша проблема с оберткой HTTP, похоже, не имеет ничего общего с этим. Что вы имеете в виду, когда наводнили его? Обычно вы вообще не хотите использовать удаленный доступ.

Почему бы не сделать это простым способом:

 dirname(__FILE__); //Current working directory dirname(dirname(__FILE__)); //Get path to current working directory 

И наконец

 $include_path = $dir_path . 'file_to_include.php'; include $include_path;