Sto sviluppando un codice single serving site in PHP che visualizza semplicemente i messaggi inviati dai visitatori (che idealmente circonda l'argomento del sito Web). Chiunque può pubblicare fino a tre messaggi all'ora.Rimozione di interruzioni di riga ridondanti con espressioni regolari
Poiché il sito web sarà solo una pagina, vorrei controllare la lunghezza verticale di ciascun messaggio. Tuttavia, desidero almeno in parte preservare le interruzioni di riga nel messaggio originale. Un compromesso sarebbe quello di consentire due interruzioni di riga, ma se ce ne sono più di due, quindi sostituirle con un totale di due interruzioni di riga di seguito. Stack Overflow implementa questo.
Ad esempio:
"porcospini \ Nare \ n \ n \ n \ nporcupiney."
sarebbe cambiato per
"porcospini < br /> sono < br /> < br /> porcupiney."
Un aspetto difficile del controllo delle interruzioni di riga è la possibilità che vengano raccolti e memorizzati come \ r \ n, \ r o \ n. Ho pensato di convertire tutte le interruzioni di riga in < br /> s utilizzando nl2br(), ma ciò sembrava non necessario.
La mia domanda: Usando le espressioni regolari in PHP (con funzioni come preg_match() e preg_replace()), come posso verificare le istanze di più di due interruzioni di riga di una riga (con o senza spazio vuoto tra di esse) e quindi modificarli per un totale di due interruzioni di riga?
Grazie caos! Funziona esattamente come desiderato. Anche la tua risposta originale ha funzionato. – tevan
La risposta originale non ha soddisfatto il criterio "con o senza spazio vuoto tra di loro". :) – chaos
Ma quando c'è solo un'interruzione di riga, la cambia in due? Non dovrebbe lasciare una singola pausa così com'è? – NonCoder