处理虚拟URL中的内容的最佳方式 - php

时间:2014-10-10 18:53:14

标签: php optimization

我在MVC模式和智能模板引擎中有一个php应用程序。 我对apache和重写引擎没有任何问题。 并尝试通过以下方式处理我的代码中的url并加载内容: 我将请求拆分为$req数组:

... load all libs and function required .

$smarty->display('header.tpl');

// main switch case

switch ($req[0]) {
    case 'index.php':
        require './inc/index.php';
        $smarty->display('index.tpl');
        break;
    case 'list':
        $smarty->display('list.tpl');
        break;
    case 'topic':
        $smarty->display('single.tpl');
        break;
    case 'login':
        require_once './inc/login.php';
        $smarty->display('login.tpl');
        break;

    case 'msg':
        $smarty->assign('msg', $req[1]);
        $smarty->display('message.tpl');
        break;

    default:
        $smarty->display('error.tpl');
        break;
}

$smarty->display('footer.tpl');

现在我只是认为我的代码不是优化和非常规,而且太慢, 我如何优化这段代码(总是$ req [0]不是ASCII)?

1 个答案:

答案 0 :(得分:1)

最好又快捷的方法是通过req [0]包含一些文件模式:

$fname = './inc/' . $req[0] . '.php';
if (file_exists($fname)) {
include($fname);
}