如何在file_get_contents期间解析HTML中的变量

时间:2013-04-13 18:29:13

标签: php html parsing php-parser

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

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

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

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

2 个答案:

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

答案 1 :(得分: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/