动态页面包括 - 任何更好的方法吗?

时间:2014-08-25 19:09:58

标签: php

我为网页游戏编写了简单的菜单

每个页面的访问方式如下:

http/localhost/index.php?page=PAGENAME

这就是我的包含系统现在的工作方式:

switch($page) {


 case "login":
        include "login.php";
        break;

 //Other 110 cases...

 case "authors":
       include "authors.php";
       break;

}

正如您所看到的,它不是动态的,每个页面都必须添加到切换菜单中。它工作得很好,但过了一段时间我的代码变得越来越大。现在这个开关包含近125个案例,它是一个PITA维护。

我的问题 - 有更好,更安全,更有动力的方法吗?

我知道我可以这样做:

include $page.".php";

但它非常不安全,我不想这样做。

1 个答案:

答案 0 :(得分:1)

如果您不想使用框架来处理您的网址并希望像这样保存网址,那么我建议在这种情况下使用以下内容:

$pages = array(
    'login',
    'authors',
    //...
);
if(in_array($page, $pages))
    include $page .'.php';
else
    include 'not_found.php';

您甚至可以做得更好并生成$pages数组,动态读取目录中的PHP文件。