1

我有不同的模块,例如 用户、统计信息等。如果我点击用户,我会获得有关用户的信息,如果我点击统计信息,我会获得用户统计信息等等。但我想用 php(不是 OOP)自动执行此操作 - 从mods文件夹自动包含和调用文件(例如users.php、statistics.php等)。我知道 php OOP 具有自动加载类功能。但我不知道 PHP 面向对象。我如何在没有 OOP 的情况下使用 PHP 做到这一点?我希望链接是这样的:

<a href='index.php?mod=users'>User list</a> <a href='index.php?mod=statistics'>Statistics</a>
4

2 回答 2

2
if (isset($_GET["mod"]) && file_exists("mods/" . preg_replace("/[^\w\d]+/", "", $_GET["mod"]) . ".php")) {
    include "mods/" . preg_replace("/[^\w\d]+/", "", $_GET["mod"]) . ".php"; // or: require("mods/" . preg_replace("/[^\w\d]+/", "", $_GET["mod"]) . ".php");
}
于 2011-12-05T08:20:35.017 回答
0

使用switch/case或一些现代卫生系统。

// BASE_PATH is some previously defined application path constant

// fetch $mod from $_GET, and if set strtolower() it

switch($mod){
    case 'user':
    case 'admin':
    case 'statistics':
        $path = realpath(BASE_PATH . "/mods/{$mod}.php");
        if(false === $path || !is_file($path)){
            // error, 404?
        }
        require $path;
        break;
    default:
        // invalid mod, 404?
        break;
}

// and so forth
于 2011-12-05T09:03:37.327 回答