Bir dizeden BB kodları nasıl kaldırılır?

2 Cevap php

Bir dize tüm BBcode'lar binmek olsun ama içerik tutmak nasıl?

Örnek:

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

Olacak:

Bu cesur ve bu renkli

2 Cevap

Ben sadece boş tarafından [ ve ] arasında olan her şeyi değiştirmek için, normal bir ifade ve preg_replace işlevini kullanabilirsiniz varsayalım dize:

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

Görüntüler:

This is bold and This is colored


Here, the pattern I used is matching :

  • Bir [ karakter: \[
  • Anything that's not a ] character : [^\]]
    • Bir ya da daha fazla zaman: [^\]]+
  • ve ] karakter: \]

Eğer bunları tam anlamıyla yorumlanmalıdır istediğinizde bunları kaçmak zorunda anlamına gelir - ki [ ve ] özel bir anlamı vardır unutmayın.

I this source bu buldum. Tüm kredi yazar gider, ShEx.

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

echo stripBBCode($text_to_search);

Ben bunu test ettik ve çalışır.