Динамически включать файлы из разных папок - PullRequest
0 голосов
/ 01 марта 2012

У меня есть следующий скрипт для динамического включения:

 <?php   
$_GET["page"] = (isset($_GET["page"])) ? $_GET["page"] : "home";

    $page = $_GET['page'];
    $pages = array('home', 'solutions', 'projects', 'about', 'contact');
    if (!empty($page)) {
        if(in_array($page,$pages)) {
            $page .= '.php';
            include($page);
        }
        else {
        echo 'Page not found. Return to
        <a href="index.php">index</a>';
        }
    }
        else {
        include("home.php");
    }
       ?>

Что я должен добавить к этому сценарию, чтобы можно было также ДИНАМИЧЕСКИ включать файлы из разных папок (например, у меня есть страница index.php, которая находится в www/mysite_folder, и я хочу динамически включить в index.php файл Adresses.php то есть в www/mysite_folder/faq_folder)? Обратите внимание, что под динамическим я имею в виду не обычное включение (include();), а <a href="index.php?category=faq_folder&page=adresses">Adresses</a>.

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

Не вижу причин для разделения исполняемых файлов между каталогами.
Итак, если вы можете хранить все файлы в одном, вот код

<? 
$page = (empty($_GET["page"])) ? "home" : $_GET["page"];
$page = "includes/".basename($page).".php"; 
if (is_readable($page)) { 
  include($page); 
} else {
  header("HTTP/1.0 404 Not Found"); 
  exit;  
} 
?>

, который является безопасным и автоматизированным.

0 голосов
/ 01 марта 2012

require('faq_folder/'.$file_name); Но это не очень надежное решение.

...