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

Dom HTML中的自定义标记和php解析器,dom,html-parser,custom-tag,Dom,Html Parser,Custom Tag,我有个问题,需要你的帮助。 我想在我的脚本代码中使用我的自定义标记,比如[tag],分析所有html代码,然后解析代码,用php代码或我的输出世界替换这些标记,并回显我的输出 一个简单的代码: <!doctype html> <html> <head> <meta charset="utf-8"> <title>[MY_PAGE_TITLE]</title> </head> <header>&

我有个问题,需要你的帮助。 我想在我的脚本代码中使用我的自定义标记,比如[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>
但是对于我的任何其他标签,我想在左侧或右侧边栏中加载一些模块,或者从我的数据库中加载一些文章

我该怎么做?

我解决了我的问题。 如果你有这个问题,你可以使用这个方法

第1步:在主视图文件中定义自定义标记,然后在服务器端使用PHPob\u start函数运行输出缓冲区,然后在文件中执行一次require或require\u,或执行一次include或include\u。 现在使用PHP中的define a variable和ob_get_contents函数,将所有文件代码存储在一个变量中。像这样:

$html = ob_get_contents();
现在,所有视图文件都位于一个变量中

您可以使用ob\u end\u clean功能清理缓冲区

例如:

ob_start();
require_once 'mainViewFile.php';
$html = ob_get_contents();
ob_end_clean();
步骤2:您可以使用str\u replace函数用新数据替换定义的自定义标记

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

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

这不是一个真正的正则表达式问题。为什么不使用php支持的标准字符串替换?另外,请注意,将
regex
html
放在一起(特别是在解析时)会导致大量的向下投票。因为据我所知,你的问题不需要正则表达式,所以我建议删除正则表达式标记,以免你因太快而被用户忽略。@Morteza你应该看看源代码,它是用PHP制作的模板系统,这会给你们很多关于如何做上面所描述的事情的想法,还有更多。谢谢你们。ivy_lynx,我从我的问题中删除了regex标记。我看了看,但不是我问的。有人来帮我吗?请帮帮我!!
$leftSideBarInformation = 'We stored left bar information in this variable!';
$html = str_replace('[MY_WEBSITE_LEFT_SIDEBAR_INFORMATION]', $leftSideBarInformation, $html);