ページを保存する方法は 2 つあります。1 つ目は単純です。ファイルに保存します。2 つ目は、私が問題を抱えているデータベースに保存することです。
「システム」全体は、ページを HTML テンプレートに挿入して出力する「エンジン」に基づいています。簡単に言うと、エンジンに到達する前にコードを実行する必要があります。うまくいけば、これはいくつかのコードでもう少し理にかなっています.
page.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 混合物を含めると失敗します。
これについてはもっと良い方法 (保存、実行など) があるかもしれませんが、これは私が現在見ている問題です。