PHP Index.php控制器的最佳解决方案

时间:2014-07-17 12:13:20

标签: php

包含PHP文件将所有php文件链接在一起以允许数组通过每个文件的最佳方法是什么。

目前,当从.htaccess文件传递案例值时,我正在使用一个开关来包含一个html和php文件。

的.htaccess

RewriteRule ^$ index.php?page=homepage
RewriteRule ^login$ index.php?page=login

的index.php

if(isset($_GET['page'])) {
    switch($_GET['page']) {
        case 'login':
            include('login.php');
            include('login.html');
        break;

        default:
            include('index.html');
        break;
    }
}

这种技术似乎不是最佳解决方案,因为您最终会得到一个包含该网站所有页面的巨大switch语句。

有更好的解决方案吗?

此外,我在将数组传递到名为'account'的文件夹时遇到问题,该数组将包含谁登录等详细信息,但是只要我将代码添加到该文件夹​​,主站点中的数组就不会不包括在内。

如何从'account'文件夹中的文件夹中访问数组?

1 个答案:

答案 0 :(得分:1)

为避免大型开关,您可以执行此操作:

if(isset($_GET['page']) === true)
   if(file_exists($_GET['page'] . '.html') === true) {
       include($_GET['page'] . '.php');
       include($_GET['page'] . '.html');
    } else {
       header('HTTP/1.0 404 Not Found');
       echo 'Page not found';
       exit;
    }
} else {
   include('index.html');
}

这限制了.html.php文件的名称必须与相应的page GET参数相同。