5

文字列内のすべての BBcode を取得し、コンテンツを保持するにはどうすればよいですか?

例:

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

になります:

これは太字で、これは色付きです

4

2 に答える 2

21

正規表現と関数を使用して、 と の間のすべてを空の文字列に置き換えることができると思います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 回以上:[^\]]+
  • および]文字:\]

[andには特別な意味があることに注意してください。つまり、]文字どおりに解釈したい場合はエスケープする必要があります。

于 2010-04-15T20:30:29.857 に答える
0

私はこのソースからこれを見つけました。すべてのクレジットは作者のShExに帰属します。

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

echo stripBBCode($text_to_search);

私はそれをテストしました、そしてそれは働きます。

于 2010-04-15T20:33:31.377 に答える