cms的简化语法

时间:2015-05-06 08:57:45

标签: php user-interface

我正在为一个将由所有者更新的网站提供一个小型的php + mysql CMS。 正如WordPress所见,我想让用户有机会使用如下语法进行更复杂的更新:

[row h="100"]
    [col link="/some/link/1"][/col]
    [col link="/some/link/2"][/col]
    [col link="/some/link/3"][/col]
[/row]

[el id="some-id"][/el]

显然我的CMS必须以正常的完整html读取和翻译此脚本。 当然,我可以使用正确顺序编写的大量replace()来完成它,但我想存在更好更稳定的方法。

你有什么建议?这种语法是如何命名的?

1 个答案:

答案 0 :(得分:0)

根据您的需要调整

function bbc2html($content) {
    $search = array (
        '/(\[b\])(.*?)(\[\/b\])/',
        '/(\[i\])(.*?)(\[\/i\])/',
        '/(\[u\])(.*?)(\[\/u\])/',
        '/(\[ul\])(.*?)(\[\/ul\])/',
        '/(\[li\])(.*?)(\[\/li\])/',
        '/(\[url=)(.*?)(\])(.*?)(\[\/url\])/',
        '/(\[row h=\")(.*?)(\\"])(.*?)(\[\/row\])/',
        '/(\[col link=\")(.*?)(\\"])(.*?)(\[\/col\])/'
    );

    $replace = array (
        '<strong>$2</strong>',
        '<em>$2</em>',
        '<u>$2</u>',
        '<ul>$2</ul>',
        '<li>$2</li>',
        '<a href="$2" target="_blank">$4</a>',
        '<div class="row" style="height: $2px;">$4</div>',
        '<a class="column" href="$2">$4</a>'
    );

     return preg_replace($search, $replace, $content);
}

echo bbc2html('[row h="100"][col link="/some/link/1"]test 1[/col][col link="/some/link/2"]test 2[/col][col link="/some/link/3"]test 3[/col][/row][el id="some-id"][/el]');

为bbc2html()

提供一个没有空格的字符串