Ich entwickle eine single serving site in PHP, die einfach Meldungen anzeigt, die von Besuchern (im Idealfall rund um das Thema der Website) gepostet werden. Jeder kann bis zu drei Nachrichten pro Stunde posten.Entfernen redundanter Zeilenumbrüche mit regulären Ausdrücken
Da die Website nur eine Seite sein wird, möchte ich die vertikale Länge jeder Nachricht steuern. Ich möchte jedoch Zeilenumbrüche in der ursprünglichen Nachricht zumindest teilweise beibehalten. Ein Kompromiss wäre, zwei Zeilenumbrüche zuzulassen. Wenn es jedoch mehr als zwei Zeilenumbrüche gibt, ersetzen Sie sie durch insgesamt zwei Zeilenumbrüche in einer Zeile. Stack Overflow implementiert dies.
Zum Beispiel: "Porcupines \ Nare \ n \ n \ n \ nporcupiney"
würde
"Porcupines < br /> sind < br /> < br /> porcupiney." Geändert werden
Ein schwieriger Aspekt beim Überprüfen auf Zeilenumbrüche ist die Möglichkeit, dass sie gesammelt und als \ r \ n, \ r oder \ n gespeichert werden. Ich dachte darüber nach, alle Zeilenumbrüche mit nl2br() in < umzuwandeln, aber das schien unnötig.
Meine Frage: Mit regulären Ausdrücken in PHP (mit Funktionen wie preg_match() und preg_replace()), wie kann ich nach Instanzen von mehr als zwei Zeilenumbrüche in einer Zeile (mit oder ohne Leerzeichen zwischen ihnen) und dann ändern Sie sie auf insgesamt zwei Zeilenumbrüche?
Danke Chaos! Das funktioniert genau wie gewünscht. Deine ursprüngliche Antwort hat auch funktioniert. – tevan
Die ursprüngliche Antwort hat Ihr Kriterium "mit oder ohne Leerzeichen zwischen ihnen" nicht erfüllt. :) – chaos
Aber wenn es nur einen Zeilenumbruch gibt, ändert es sich in zwei? Sollte es nicht eine einzige Pause bleiben wie es ist? – NonCoder