0

我正在构建一个 CMS,作为其中的一部分,任何静态 HTML 都被拆分为可重用的块,然后保存在一个中心位置。当我们需要每个块时,我们可以使用 file_get_contents 将其添加到包含页面 HTML 代码的字符串中。

作为 CMS,HTML 的某些部分需要从数据库中加载数据。现在我可以简单地放置占位符,例如 %cmsarea0%、%cmsarea1%、%cmsarea2% 等,然后使用 str_replace 将数据库中的 HTML 放入其中。但这对我来说似乎不是最好的方法。

理想情况下,我的页面类中有几个预定义的变量,然后在 HTML 文件中让 PHP 在加载了 file_get_contents 时回显该变量,但是似乎没有多少测试有效。我正在加载的 .html 文件中的 PHP 代码被注释掉了。

我知道这种事情是可能的,因为 PHPBB 使用类似的东西,他们将变量包装在大括号中,然后以某种方式解析。但是我该如何实现呢?

4

2 回答 2

2

我不明白你为什么不想使用str_replace(),这对我来说似乎是完美的补救措施。

尝试以下

HTML - myURL.php

<html>
    <body>
        <div id="myDiv1">%cmsarea1%</div>
        <div id="myDiv2">%cmsarea2%</div>
        <div id="myDiv3">%cmsarea3%</div>
    </body>
</html>

PHP - HTMLparse.php

$theContent = file_get_contents("myURL.php");

$var1 = $theContent.str_replace("%cmsarea1%", "My first variable");
$var2 = $theContent.str_replace("%cmsarea2%", "My second variable");
$var3 = $theContent.str_replace("%cmsarea3%", "My third variable");
于 2013-04-13T18:37:31.750 回答
0

你全错了。在 PHP 中不应使用 file_get_contents 添加 HTML 文件,而应使用 include。这样,HTML 页面中的任何 PHP 代码都将被执行(前提是它包含在标签中)。请记住,包含的 HTML“部分”应具有 .php 扩展名,以便执行其中包含的 PHP 脚本。这是 PHP-HTML 模板的基础知识。

在网上搜索“php 模板网站”并学习。这是我得到的第一个结果,非常有用:http ://www.1stwebdesigner.com/css/how-to-create-php-website-template/

于 2013-04-13T18:43:10.303 回答