guarda caso ho fatto una richiesta simile giorni fa e alla fine son giunto a questo codice
non solo ti porta accapo ma riduce i troppi ritorni accapo dell'utente con due ritorni.
in pratica un ritorno accapo corrisponde a br
due ritorni corrisponde al tag p
Codice PHP:
function nl2p($st){
$st preg_replace"/\r\n/" "\n" $st ); 
$st preg_replace"/\n\n[\n]*(.*)/" "\n\n$1" $st );
$ststr_replace("\n\n","</p> 

"
$st);
$ststr_replace("\n""
"
$st);
return 
$st;

ecco la funzione
devi solo accettarti che la stringa che appaia a video abbia

all'inizio e </p> alla fine
quindi scriverai
$stringa= "

".$stringa."</p>";
poi naturalmente
$stringa = nl2p($stringa);
comunque ci sto lavorando ancora su.ù



ringrazio Leilond che mi ha istruito e illuminato a riguardo
leggi qui