Frage

Ich entwickle eine in PHP, die einfach zeigt Meldungen , die von den Besuchern (im Idealfall rund um das Thema der Website) veröffentlicht. Jeder kann auf drei Nachrichten pro Stunde post up.

Da die Webseite nur eine Seite sein wird, würde Ich mag die vertikale Länge jeder Nachricht steuern. Allerdings mag ich zumindest teilweise Zeilenumbrüche in der ursprünglichen Nachricht erhalten. Ein Kompromiss wäre für zwei Zeilenumbrüche zu ermöglichen, aber wenn es mehr als zwei ist, dann ersetzen Sie sie durch insgesamt zwei Zeilenumbrüche in einer Reihe. Stapelüberlauf führt dies.

Zum Beispiel:

"Porcupines \ Nare \ n \ n \ n \ nporcupiney."

würde geändert werden

"Porcupines
sind

porcupiney."

Ein Aspekt heikel für Zeile des Prüfens bricht, ist die Möglichkeit ihrer als \ r \ n \ r oder \ n gesammelt und gespeichert werden. Ich dachte an alle Zeilen Umwandlung bricht /> s mit nl2br ()

Meine Frage: Verwenden von regulären Ausdrücken in PHP (mit Funktionen wie preg_match () und preg_replace ()), wie kann ich überprüfen, für Instanzen von mehr als zwei Zeilenumbrüchen in einer Reihe (mit oder ohne Leerzeichen dazwischen) und dann ändern sie auf insgesamt zwei Zeilenumbrüche?

War es hilfreich?

Lösung

preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\n\n", $text)

Andere Tipps

So etwas wie

preg_replace('/(\r|\n|\r\n){2,}/', '<br/><br/>', $text);

sollte funktionieren, denke ich. Obwohl ich nicht genau PHP-Syntax erinnern, könnte es etwas mehr Entkommen brauchen: - /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top