Zeilenumbrüche mit PHP in Absätze verwandeln

In PHP gibt es die tolle nl2br Funktion, die Zeilenumbrüche von einem String automatisch in xHTML konformen <br /> ersetzt. Aber <br /> hat keine semantische Bedeutung… Eigentlich sind es ja Absätze, aber Absätze werden mit <p> und </p> definiert, was nun? Wir brauchen eine nl2p() Funktion.

Leider gibt es so eine Funktion nicht und glücklicherweise habe ich eine Lösung parat:

function nl2p($string) {
    return '<p>' . preg_replace('/(\r\n|[\r\n])\s*(\r\n|[\r\n])/', '</p><p>', $string) . '</p>';
}

Diese Funktion nimmt sich 2 oder mehrere Zeilenumbrüche und ersetzt sie durch </p><p>. Da der erste Absatz kein Anfangstag hat und der letzte Absatz kein Endtag, fügt die Funktion es manuell hinzu.

Ähnliche Artikel

Kommentar abgeben:

Markdown: **fett**, *kursiv*, `code`