PHP wordwrap - Text an bestimmten Zeilenlänge umbrechen

Navigation
 Startseite
 Fachbücher
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 
Script Seite

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Script Mods
 phpBB Adsense Mode

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 ICQ Generator
 Colorpicker
 Unix timestamp Tool
 TLD Liste
 Webkatalog Verzeichnis

Partner
Sprüche Treff

Goneo.de
Bei diesen Anbieter bekommt man Webspace, Domains,...
http://www.Goneo.de
speicherzentrum.d...
Bei den Anbieter bekommt man Webspace, Domains und...
http://www.speicherzentrum.de
 
 
 

Text an bestimmten Zeilenlänge umbrechen

Sie befinden sich: Home > Php Tutorial >

Text an bestimmten Zeilenlänge umbrechen



Eintrag am:  02.12.2011
Hits / Besucher:  8223
Sprache: Deutsch
Kategorie:  Einsteiger Tutorials...
Tutorial Art:  eigenes
Eingetragen von   � 
 

Beschreibung


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
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($string3"\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.

 

Tags


 

Verlink uns, wenn Dir das Tutorial gefallen hat:
Artikel hinzufügen bei: