gpt4 book ai didi

php - 执行存储在数据库中的 PHP 代码

转载 作者:行者123 更新时间:2023-11-29 04:25:38 26 4
gpt4 key购买 nike

<分区>

我有两种存储页面的方法。第一个很简单;将其存储在文件中。第二个是将它存储在我遇到问题的数据库中。
整个“系统”基于一个“引擎”,该引擎通过将页面注入(inject) HTML 模板来输出页面。简单来说:代码必须在到达引擎之前执行。希望这对一些代码来说更有意义。
页面.class.php

...
// Page was found in the database
$this->name = $pageVariables['name'];
$this->requiredAuth = $pageVariables['requiredAuth'];
if ($parsed) {
ob_start();
echo $pageVariables['content'];
$this->contents = ob_get_clean();
var_dump($this->contents);
} else {
$this->contents = $pageVariables['content'];
}
...
// File exists on the system, load it
$fileContents = file_get_contents($this->url);
if ($parsed) {
ob_start();
include($this->url);
$this->contents = ob_get_clean();
var_dump($this-contents);
if (isset($pageName)) {
$this->name = $pageName;
}
if (isset($requiredAuth)) {
$this->requiredAuth = $requiredAuth;
}
if (isset($useEngine)) {
$this->useEngine = $useEngine;
}
} else {
$this->contents = $fileContents;
}

if ($parsed) {...} 在那里,因此可以获取未解析的页面以进行编辑。
显然这是一个缩减版,但我希望这足以说明问题。
如果我用代码加载页面

Hello World<br>
<?php echo 'Hello World'; ?>

我从数据库中得到的输出是

Hello World<br>
<?php echo 'Hello World'; ?>

但是,存储在文件中的相同代码会输出

    Hello World
Hello World

我试过使用 eval(),但它只会计算 PHP 代码,当我包含 HTML/PHP 混合时会失败。
也许有更好的方法来解决这个问题(存储、执行等),但这是我目前看到的问题。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com