Hakkaten yav benim kafam durmuş yazarken sanırım

O zaman şu şekilde yapabiliriz:
$text = '<h3>başlık3</h3>öylesine yazı<b>bold yazı<u>alt çizgi<p>paragraf</str';
if(preg_match_all('/(<[^\>\/]*\>)?([^<\>]+)(<\/[^\>\/]*\>)?/smi',$text,$al)){
$say = count($al[1]);
for($i=0;$i<$say;$i++){
$yeni .= ($al[1][$i] != '' && substr($al[2][$i],0,1) != '/') ? $al[0][$i] : '';
$son = ($al[3][$i] == '') ? str_replace('<','</',$al[1][$i]).$son : '';
}
}
echo $yeni.$son;