Bilgi olması bakımından, str_replace'nin bu şekilde defalarca kullanılması hem gereksiz, hem performans için iyi olmaz. Ya değişiklikleri array olarak yapmalı:
$eski = array('2.', '3.', '4.', '5.', '6.');
$yeni = array('<br>2.', '<br>3.', '<br>4.', '<br>5.', '<br>6.');
$temizle = str_replace($eski,$yeni,$temizle);gibi, ya da böyle benzer değişiklikler için direk preg_replace ile halletmeli :
echo preg_replace('/([0-9]\.)/smi',"<br/>$1",$metin);