使用保存在数据库中的PHP代码

时间:2015-11-21 15:27:26

标签: php html mysql sql

我有这段代码:

<!DOCTYPE html>
<html>
    <?php require_once('./module/mod_head.php'); ?>
<body>
    <?php require_once('./core/imp/navbar.inc.php'); ?>

    <div class="container" style="margin-bottom: 50px;">
        <?php include('./module/mod_preview.php'); ?>
    </div>

    <div class="container-fluid">
        <?php include_once('./module/mod_block_whoami.php') ?>

        <div class="collapse" id="summaryId">
            <?php include_once('./module/mod_block_summary.php'); ?>
        </div>
    </div>

    <?php require_once('./core/imp/footer.inc.php'); ?>
</body>
</html>

现在,此代码保存在数据库中。

问题是我希望使用该代码,因为它将是我的index.php文件中的唯一代码。

但正如我之前所说,它保存在数据库中并获取该代码我需要使用php然后代码将保存在php变量中并回显如下:

<?php echo "<html><?php echo "<morehtml>blablabla</morehtml>"; ?></html>"; ?>

我想过创建一个临时文件,该文件被代码覆盖,然后由index.php文件或任何需要从数据库获取代码的文件包含。

但是我不知道这是不是一个好主意,或者是否有更好的方法从MySQL数据库获取PHP代码并使用它。

2 个答案:

答案 0 :(得分:1)

PHP提供eval($string)功能。它在您传递的字符串中运行代码。因此,从MySQL数据库中读取代码并运行它将是一件简单的事情。

但是,这是个好主意吗?许多人不这么认为,因为它使得一个坏人很容易将你的应用程序推到一边。

答案 1 :(得分:1)

如果您想使用数据库中的php代码,请尝试eval(将字符串评估为PHP代码)。

$sting // your variable with the data from the DB
<?=eval('?>' . $sting . '<?') ?>

但这很危险,来自文档:

“eval()语言结构非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果你仔细验证除了使用这个结构之外别无选择,请特别注意不要将任何用户提供的数据传递给它,而不事先正确验证它。“