non c'è differenza tra il primo esempio ed il secondo ...
1 - il testo o gli spazi se posti così com'è in (x)HTML diventano un singolo spazio senza far niente
2 - se vuoi eliminare gli spazi usi preg_replace('/[ ]+/', ' ', trim($testo)) e tra le parole avrai massimo uno spazio (più ritorni a capo)
3 - non c'è modo di capire se hai scelto di andare a capo e se la frase dopo deve essere due a capo dopo oppure uno solo a meno che non hai un software con vocabolario dietro capace di analizzare l'intenzione dell'interlocutore ... fantascienza, lascia perdere, nessun forum fa questo e se lo fa lo fa male a discapito delle prestazioni del server .... elimini spazi superflui e scegli se lasciare gli a capo multipli o normalizzarli tutti a massimo 1 con preg_replace("/[\n\r]+/", '
', $testo);