Originariamente inviato da Ajeje Brazof
Devo scrivere un codice che trasformi il testo di un post di un forum da così:
ciao a tutti
vi volevo dire che
torno la settimana prossima
a:
ciao a tutti
vi volevo dire che
torno la settimana prossima
In pratica non deve togliere tutt i ritorni a capo, ma togliere i ritorni a capo solo se intervallati da testo spazio testo spazio testo
Prova così:
Codice PHP:
$string = "ciao a tutti
vi volevo dire che
torno la settimana prossima.";
// questo ti conviene farlo prima di inserire il messaggio nel db:
while (stristr($string, "\n\n") !== false) {
str_replace("\n\n", "\n");
}
// questo lo farai quando stampi il messaggio ripescato dal db:
echo nl2br($string);
Considerando la versione di PHP <= 4.3.x (altrimenti stristr() non sarebbe nativa e l'operatore !== non funzionerebbe) e che tu sia su piattaforma Linux (altrimenti per gli "a capo" Windows utilizza carriage returns + newline, cioè "\r\n"; in tal caso il controllo nel wihle e il replace andrebbero modificati).