PHP自定义标记语言分析器


PHP Custom Markup Language Parser

我正在制作一个网站,我想用PHP制作一种自定义标记类型语言。我希望标签被[]包围。现在,我在想这个,就像任何人一样,我可以做这样的事情:

function formatMarkup($markup = ''){
    $markup = str_replace('[color=blue]', '<span style="color: blue">', $markup);
    return $markup
}

尽管这可能会起作用,但如果它做一些类似explode()的事情,但从每个[开始,到每个]结束,那么它在进度上会更正确。如果我发现了,那就太好了。感谢您的时间和努力。

编辑:我决定使用preg_split()。这看起来不错,但我无法获得正则表达式。这是我的密码。

编辑#2:我已经完成了大部分正则表达式,但数组中有一些非种子的额外键。我该如何修复它们?这是我的新密码。

我已经制作了标记语言。我使用

$split = preg_split("/('[|'])/", $markup);

获取单独的"标签"并使用

foreach($split as $k => $v){
        if(strlen($v) < 1){
            continue;
        }

给文盲浏览每一个,并检查值是否为空。然后,在那之后,我会做所有的检查,一起解析代码块,并一行接一行地生成重新构建的文本。