nl2br()

pangu

Angesehenes Mitglied
mit nl2br() kann ich zeilenumbrüche erzeugen.
kann ich es auch so definieren, dass er nur zeilenumbrüche machen soll, wenn im text zwei zeilenumbrüche hintereinander kommen? (also einfache zeilenumbrüche ignorieren)?
 
@edit: Falsch gelesen. Um 4:30 Morgens sollte man keine Programmierung mehr anfassen...
 
So:


$txt = str_replace('\n\n','<br/>',$txt);


Gruss


codemonk
 
Besser wäre es in einer von diesen Formen, je nachdem in welcher Form es benötigt wird:

CODE $string = preg_replace('/(\r?\n\r?\n)/m', '<br />\1', $string);


CODE $string = preg_replace('/(\r?\n\s*\r?\n)/m', '<br />\1', $string);
 
\r?\n\s*\r?\n --> \n is umbruch. was ist \r oder ?\n ?
 
http://regexp-evaluator.de/tutorial/

is eigl. ganz einfach
wink.gif
 
QUOTE (dayscott @ Sa 30.06.2007, 09:39)\r?\n\s*\r?\n --> \n is umbruch. was ist \r oder ?\n ?

\n ist newline und ist der Zeilenumbruch bei Linux.
\r ist carriage return, welcher bei Windows zusätzlich zur newline für einen Zeilenumbruch verwendet wird in der Form \r\n.


Ansonsten bitte dies hier lesen:
 
dachte ich mir -

sondern?

hab deinen vorlezten post eben nicht ganz kapiert.

was heisst: \r ist carriage return, welcher bei Windows zusätzlich zur newline für einen Zeilenumbruch verwendet wird in der Form \r\n.
 
QUOTE (dayscott @ Di 3.07.2007, 17:13) [...] was heisst: \r ist carriage return, welcher bei Windows zusätzlich zur newline für einen Zeilenumbruch verwendet wird in der Form \r\n.

Jepp, es stellt den Zeilenumbruch für Windows dar und auch bei einigen anderen Protokollen, wie z.B. SMTP (das ist aber hier nicht weiter wichtig).
\n ist newline, und afaik der Zeilenumbruch für Unix-/Linux-Systeme.
 
Für die Jungen hier, die noch nie eine Schreibmaschine gesehen haben
wink.gif


Bei Schreibmaschinen müssen am Ende einer Zeile - zum Weiterschreiben auf der nächsten Zeile - zwei Dinge passieren: das Blatt muss um eine Zeile weiter nach oben gedreht werden, und der "Wagen" muss von rechts zurück zur linken Seite. Das konnte man einzeln machen, es gab aber einen Hebel, der beides gleichzeitig bediente. Bei der Elektrifizierung und später Computerisierung der Schreibmaschinen wurden diese Funktionen übernommen. Für Matrixdrucker sind sie auch heute noch wichtig.

\n = Newline = Neue Zeile = Blatt weiterdrehen = Verschiebung der Schreibposition horizontal
\r = Carriage Return = Wagenrücklauf = Verschiebung der Schreibposition vertikal
\r\n = Carriage Return & Newline

Wobei \n und \r eher programmiertechnische Schreibweisen sind. In Bezug auf Betriebssysteme werden eher die Begriffe LF (LineFeed) für \n respektive CR für \r verwendet.

Bei Unix-Systemen wird für Zeilenumbrüche üblicherweise nur ein LF verwendet, bei Windows ein CR+LF. Es soll aber auch Systeme geben, die nur ein CR verwenden. Wenn man mit Daten arbeitet, die von irgendeinem unbekannten System kommen, prüft man also am besten alle drei Varianten.

Griessli
Irene
 
Zurück
Oben