Как удалить BB коды из строки? - PullRequest
4 голосов
/ 16 апреля 2010

Как получить все BB-коды в строке, но сохранить содержимое?

Пример:

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

Будет:

Это жирный и цветной

Ответы [ 2 ]

19 голосов
/ 16 апреля 2010

Полагаю, вы могли бы просто использовать регулярное выражение и функцию 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


Здесь шаблон, который я использовал, соответствует:

  • a [ символ: \[
  • Все, что не является символом ]: [^\]]
    • Один или несколько раз: [^\]]+
  • и символ ]: \]

Обратите внимание, что [ и ] имеют особое значение - это означает, что вы должны избегать их, когда вы хотите, чтобы они интерпретировались буквально.

0 голосов
/ 16 апреля 2010

Я нашел это из этого источника . Весь кредит переходит к автору, ShEx .

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

echo stripBBCode($text_to_search);

Я проверил это, и оно работает.

...