PHP正则表达式将括号标记应用为粗体

时间:2010-09-11 04:55:45

标签: php regex

我正在开展一个项目,这是一个吼叫箱。由于我已经禁用了所有HTML,因为人们很可能会忘记关闭标签并搞砸了所有内容,我想为其他人提供一种不同形式的添加方式。

我想要的是在PHP中设置正则表达式以在文本周围添加标签。这是我想要做的一个例子......

如果某人输入“[Hello!] {everyone}怎么样?”它会显示为......
您好! 每个人怎么样?”

[]括号之间的文本将变为粗体,{}括号之间的文本将为斜体。

有谁知道如何为此编写正则表达式?
谢谢!

1 个答案:

答案 0 :(得分:4)

一种方法是:

$str = preg_replace('~\[([^\]]*)\]~', '<b>\\1</b>', $str);
$str = preg_replace('~{([^}]*)}~', '<i>\\1</i>', $str);

codepad

话虽如此,我不赞成创造另一种标记语言。像BBCode一样,这很邪恶。

BBCode是懒惰程序员发明的标记语言,他们不想以正确的方式过滤HTML。结果,我们现在有一个很难实现的松散“标准”。以正确的方式过滤HTML:

http://htmlpurifier.org/