如何使用php而不是OOP自动包含文件?

时间:2011-12-05 08:12:07

标签: php include include-path require-once

我有不同的mod,例如用户,统计数据等。如果我点击用户,我会收到有关用户的信息,如果我点击统计信息,我会获得用户统计信息等等。但是我想用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>

2 个答案:

答案 0 :(得分: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");
}

答案 1 :(得分:0)

使用switch / case或某些mod卫生系统。

// 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