Просмотр поста

.
ДоХтор
# dilp (09.12.2019 / 21:26)
как сделать такой bb код?
[type=число]текст[/type]

если type = 0, то заменить на [b ]текст[/ b]
если type = 1, то заменить на [red ]текст[/ red]
если type = 2, то заменить на [size=10 ]текс
//$str = '[type=0]текст[/type]';
//$str = '[type=1]текст[/type]';
$str = '[type=2]текст[/type]';

$types = ['b', 'red', 'size=10'];

$str = preg_replace_callback(
    '~\[type=(\d+)]([^[]+)\[/type]~',
    function($m) use($types){
        $key = $m[1];
        $txt = $m[2];

        if (isset($types[$key])) {
            $left = $types[$key];
            $right = strstr($left, '=', true) ?: $right = $left;

            return "[$left]{$txt}[/$right]";
        }
    },
    $str
);

echo $str;