Wer kennt das nicht, man möchte die Ausgabe für ein Newssystem oder ein Forum programmieren und das Layout ist in der Breite begrenzt. Wenn nun der eingefügte Text keinen Zeilenumbruch besitzt, kann es vorkommen dass das gesamte Layout in der Breite sich verlängert. Dies ist sehr unschön und möchte man vermeiden.
In der Programmiersprache PHP gibt es hierfür die PHP-Funktion wordwrap() welche automatisch einen Zeilenumbruch in einen String einfügt. Man kann in dieser PHP Funktion verschiedene Parameter übergeben.
Im ersten Parameter wird der eigentliche String übergeben, z.b.: in einer Variable und in zweiten gibt man die Zeilenlänge an. Es ist aber nicht zwingend notwendig dass man den zweiten Parameter übermittelt, standardmäßig wird automatisch nach fünfundsiebzig Zeichen der Umbruch im String generiert. Im dritten Parameter welcher optional ist kann man noch angeben, wie der Zeilenumbruch eingefügt wird.
Zusätzlich gibt es auch noch einen vierten Parameter welche genauso wie der dritte optional ist. Wenn man diesen an gibt, werden Wörter automatisch auch ungebrochen, wenn diese die vorgegebene Zeilenlänge überschreiten. Nachfolgend ein Beispielcode welche die Funktionsweise von der PHP Funktion wordwrap() demonstriert.
Beispiel:
<?php
/*
* Text in einer Variable definieren
*/
$string = 'Dies ist ein Beispieltext welcher' .
' verdeutlichen soll, wie die PHP ' .
'Funktion wordwrap() arbeitet. Dieser ' .
'Text hat mir als wie fünfundsiebzig Zeichen.';
/*
* Wordwrap mit einen Parameter wo automatisch nach
* fünfundsiebzig Zeichen ungebrochen wird
*/
$string_mit_zeilenumbruch =wordwrap($string);
echo '<pre>' . wordwrap($string_mit_zeilenumbruch) . '</pre><br><br>';
/*
* Wordwrap mit den zweiten Parameter, wo automatisch
* nach fünfzig Zeichen ungebrochen wird
*/
$string_mit_zeilenumbruch =wordwrap($string,50);
echo '<pre>' . wordwrap($string_mit_zeilenumbruch) . '</pre><br><br>';
/*
* Wordwrap mit dem dritten Parameter, wo wir anstatt
* einer neuen Zeile \n ein HTML Code für den Umbruch
* verwenden
*/
$string_mit_zeilenumbruch =wordwrap($string,50,'<br>');
echo '<pre>' . wordwrap($string_mit_zeilenumbruch) . '</pre><br><br>';
/*
* Wordwrap mit den vierten Parameter, hier wird der
* Zeilenumbruch bei jedem Wort erzwungen.
*/
$string='langesWortlangesWortlangesWort';
$string_mit_zeilenumbruch =wordwrap($string,5,'<br>',1);
echo '<pre>' . wordwrap($string_mit_zeilenumbruch) . '</pre><br><br>';
?>
Ausgabe:

Ausgabe des wordwrap() Beispiel
Erklärung:
Sie sehen selber das die Verwendung von der PHP Funktion wordwrap() Recht einfach ist. Leider gibt es ein Problem, wenn man zum Beispiel HTML-Tags in den jeweiligen String hat. Dann werden diese automatisch ungebrochen ohne dass Rücksicht auf den HTML Tag genommen wird. Hierfür gibt es aber eine elegante Lösung welche ihr im nachfolgenden Beispiel sieht.
Beispiel:
<?php
function wrapHtmlText($string, $zeilen_laenge = 80,
$zeilenumbruch = "\n") {
return preg_replace('%(\s*)([^>]{' . $zeilen_laenge .
',})(<|$)%Ue', "'\\1'.wordwrap('\\2', '" .
$zeilen_laenge . "', '$zeilenumbruch', 1).'\\3'",
$string);
}
$string='Html <font color="red">Text</font>';
echo wrapHtmlText($string, 3, "\n");
?>
Ausgabe des HTML Code:
Htm
l <font color="red">Tex
t</font>Html <font color="green">Text</font>
Erklärung:
Wie man sieht, fügt die selbst erstellte PHP-Function wrapHtmlText() alle drei Buchstaben ein Zeilenumbruch ein. Hierbei wird aber der HTML-Code nicht berücksichtigt und somit kommt es zu keinen Darstellungsfehler, wenn zum Beispiel ein IMG Tag in den String enthalten ist.