如何从字符串中删除BB代码?

时间:2010-04-15 20:22:51

标签: php bbcode

如何在字符串中获取所有BB代码但保留内容?

示例:

[B]This is bold[/B] and This is [color=#FFCCCC]colored[/color]

将是:

这是粗体,这是彩色的

2 个答案:

答案 0 :(得分:19)

我想您可以使用正则表达式和preg_replace函数,用空字符串替换[]之间的所有内容:

$str = '[B]This is bold[/B] and This is [color=#FFCCCC]colored[/color]';
echo preg_replace('#\[[^\]]+\]#', '', $str);

将显示:

This is bold and This is colored


这里,我使用的模式是匹配:

  • [个字符:\[
  • 任何不是]字符的内容:[^\]]
    • 一次或多次:[^\]]+
  • ]字符:\]

请注意[]具有特殊含义 - 这意味着当您希望对它们进行字面解释时,必须将它们转义。

答案 1 :(得分:0)

我是从this source找到的。所有功劳归于作者ShEx

function stripBBCode($text_to_search) {
    $pattern = '|[[\/\!]*?[^\[\]]*?]|si';
    $replace = '';
    return preg_replace($pattern, $replace, $text_to_search);
    }

echo stripBBCode($text_to_search);

我已经测试过它确实有效。