Я хочу найти метод для включения некоторых файлов на основе текущего пути к файлу. Например:
У меня есть «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;