Funktion der Woche: nl2br()
Nach einer kleinen Pause möchte ich euch wieder mit einem Funktion-der-Woche-Post beglücken. Diese Woche mit der Funktion nl2br()
nl2br() fügt vor allen Zeilenumbrüchen (z.B. \n) den HTML-Tag für eine neue Zeile ein: <br />
Wofür könnte ich diese Funktion gebrauchen?
Oft brauchte ich nl2br() wenn ich den Inhalt aus einer Textarea auf der Website anzeigen will. Oder aber auch wenn man auf einer Website eine .txt-Datei ausgibt.
Ich gebrauche die Funktion also immer dann, wenn ich einen mehrzeiligen Text direkt auf der Website ausgeben will.
Beispiel
Natürlich darf ein Beispiel nicht fehlen. Nehmen wir mal folgende HTML-Seite:
<?xml version="1.0" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Rückmeldung</title> </head> <body> <form action="rueckmeldung.php" method="POST"> <label for="kommentar">Ihre Rückmeldung:</label> <br /> <textarea name="kommentar" id="kommentar" rows="5" cols="30"></textarea> <br /> <input type="submit" value="Abschicken" /> </form> </body> </html>
Wie man sieht sendet das Formular den Inhalt eines mehrzeiligen Textfeldes an das PHP-File “rueckmeldung.php”:
echo "<b>Sie haben uns folgende Rückmeldung geschickt: </b><br />"; echo nl2br($_POST["kommentar"]);
Wenn ihr nun einen mehrzeiligen Text eingebt, wird dieser auch wieder mehrzeilig dargestellt. Wenn ihr das nl2br() rausnehmt, würde alles immer auf einer Zeile ausgegeben…
Das zweite Argument
Man kann diese Funktion auch mit einem optionalen zweiten Parameter aufrufen. Dieser legt fest ob XHTML-kompatible Zeilenumbrüche verwendet werden sollen oder nicht. Es wird ein boolescher Wert erwartet. Also true wenn ein XHTML-kompatibler Zeilenumbruch verwendet werden soll, false wenn nicht. Wenn ihr ihn nicht angebt, werden XHTML-kompatible Zeilenumbrüche verwendet…
Ein XHTML-kompatibler Zeilenumbruch ist übrigens “<br />”. Ein “normaler” Zeilenumbruch wäre “<br>”. Man beachte den Slash vor der schliessenden eckigen Klammer.