- preg_replace: documentation ( source)
<?php
$ubbText = <<<TEXT
[b]Hey[/b]
[b]Hello[/b]
TEXT;
$counter = 0;
do {
$ubbText = preg_replace(
"~\[b](.*?)\[/b]~si",
'<span class="b">' . (++$counter) . '. $1</span>',
$ubbText,
1,
$count
);
} while ($count);
echo $ubbText;