HTML中的自定义标记和php的解析器

时间:2014-09-02 19:58:27

标签: dom html-parser custom-tag

我有问题,需要你的帮助。 我想在我的脚本代码中使用我的自定义标签,如[tag]并分析所有html代码然后解析器代码并用PHP代码或我的输出世界替换这些标签并回显我的输出

一个简单的代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>[MY_PAGE_TITLE]</title>
</head>
    <header></header>
        <div class="left">[MY_WEBSITE_LEFT_SIDEBAR_INFORMATION]</div>
            <article>[MY_WEBSITE_ARTICLE]</article>
        <div class="right">[MY_WEBSITE_RIGHT_SIDEBAR_INFORMATION]</div>
    <footer></footer>
<body>
</body>
</html>

我的第一个标签[MY_PAGE_TITLE]应该替换为一个世界,例如&#34;我的网站&#34; 我想在我的语言网站上使用它。 我从像这样的数组中得到这个词:

mylangarray [
     MY_PAGE_TITLE="my website"
]

但对于我的任何其他标签,我想将一些模块加载到左侧或右侧边栏或从我的DB加载一些文章

我该怎么做?

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。 如果您遇到此问题,可以使用此方法。

step1:您在主视图文件中定义自定义标记,然后在服务器端使用PHP ob_start 函数运行输出缓冲区,然后使用require或require_once或include或include_once你的档案。 现在,在PHP中定义变量和 ob_get_contents 函数,将所有文件代码存储在变量中。像这样:

$html = ob_get_contents();

现在您拥有变量中的所有视图文件。

您可以使用 ob_end_clean 功能清理缓冲区。

示例:

ob_start();
require_once 'mainViewFile.php';
$html = ob_get_contents();
ob_end_clean();

第2步:您可以使用 str_replace 功能将您定义的自定义标记替换为新数据。

$leftSideBarInformation = 'We stored left bar information in this variable!';
$html = str_replace('[MY_WEBSITE_LEFT_SIDEBAR_INFORMATION]', $leftSideBarInformation, $html);

如果您有自定义标记数组,则可以使用foreach循环。