# 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;