<?php
$text = "<b>lorem</b>
description 1
<b>lorem</b>
description 2
<b>lorem</b>
description 3
<b>lorem</b>
description 4
<b>lorem</b>
description 5
<b>lorem</b>
description 6";
$i = 1;
$matches = null;
while (true) {
$text = preg_replace('|<(/)?b>|', ('<\1h'.$i.'>'), $text, 2, $matches);
if (!$matches) {
break;
}
if ($i < 4) $i++;
$matches = null;
}
echo $text;
PD9waHAKCiR0ZXh0ID0gIjxiPmxvcmVtPC9iPgpkZXNjcmlwdGlvbiAxCgo8Yj5sb3JlbTwvYj4KZGVzY3JpcHRpb24gMgoKPGI+bG9yZW08L2I+CmRlc2NyaXB0aW9uIDMKCjxiPmxvcmVtPC9iPgpkZXNjcmlwdGlvbiA0Cgo8Yj5sb3JlbTwvYj4KZGVzY3JpcHRpb24gNQoKPGI+bG9yZW08L2I+CmRlc2NyaXB0aW9uIDYiOwoKCiRpID0gMTsKJG1hdGNoZXMgPSBudWxsOwoKd2hpbGUgKHRydWUpIHsKICAgIAogICAgJHRleHQgPSBwcmVnX3JlcGxhY2UoJ3w8KC8pP2I+fCcsICgnPFwxaCcuJGkuJz4nKSwgJHRleHQsIDIsICRtYXRjaGVzKTsKICAgIAogICAgaWYgKCEkbWF0Y2hlcykgewogICAgICAgIGJyZWFrOyAgICAgICAgCiAgICB9CiAgICAKICAgIGlmICgkaSA8IDQpICRpKys7CiAgICAkbWF0Y2hlcyA9IG51bGw7CiAgICAKfQoKZWNobyAkdGV4dDsK