55 Stimmen

PHP: String vorne oder hinten mit beliebigen Zeichen auf bestimmte Länge auffüllen

Tipp von Computer Experte | 06.06.2012 um 16:54

In diesem kleinen Tipp möchte ich euch eine nützliche PHP Funktion vorstellen.

Oftmals haben wir Strings einer bestimmten Länge und wollen sie hinten oder vorne mit irgendeinem Zeichen auffüllen, so dass die Strings auf eine einheitliche Länge kommen. Denkbar wären zum Beispiel Nummern, bündig zu schreibende Namen oder das auffüllen kürzerer Zahlen mit Nullen, also zum Beispiel:

0000123
0012345
0000012

Wollen wir dieses Resultat durch eine eigene Funktion herstellen, benötigen wir dazu einige Zeilen Code.

Zum Glück bringt PHP aber auch schon von zuhause aus eine entsprechende Funktion mit. Sie heißt str_pad() und man verwendet sie folgendermaßen:

$str = 'abc';
echo str_pad($str, 5, '.');                // '..abc'
echo str_pad($str, 5, '.', STR_PAD_RIGHT); // '..abc'
echo str_pad($str, 5, '.', STR_PAD_LEFT);  // 'abc..'
echo str_pad($str, 5, '.', STR_PAD_BOTH);  // '.abc.'
echo str_pad($str, 8, '. ');               // '. . .abc'
echo str_pad($str, 8);                     // '     abc'

Die Funktion erwartet als ersten Parameter einen String und als zweiten Parameter einen Wert, wie lang der String werden soll.

Der dritte, optionale Parameter gibt das oder die Zeichen an, die zum Auffüllen verwendet werden sollen. Lässt man diesen Parameter weg, wird mit einem Leerzeichen aufgefüllt. Falls die mehrere Zeichen nicht zum Auffüllen passen, wird einfach abgeschnitten, so dass man auf die richtige Länge kommt.

Der vierte und letzte Parameter gibt an, ob der String rechtsbündig (STR_PAD_RIGHT), linksbündig (STR_PAD_LEFT) oder mittig (STR_PAD_BOTH) aufgefüllt werden soll. Lässt man diesen Parameter weg, wird rechtsbündig aufgefüllt.

AntwortenPositivNegativDatumStimmen
44 Stimmen

Super Tipp. Bis jetzt habe ich mir immer ein Bein ausgebrochen mit dem Auffüllen von Werten. Ich habe mir immer eine PHP Funktion gebastelt und nie richtig hinbekommen. Gerade wenn der Auffüll-String nicht richtig reinpasst, bin ich an meine Grenzen gestoßen.

Was es in PHP nicht alles für geniale Funktionen gibt! Hut ab vor den PHP Entwicklern!
06.06.2012 um 21:16

AntwortenPositiv Negativ
44 Stimmen

Leider funktioniert das Auffüllen von Strings mit Leerzeichen nicht, wenn STR_PAD_LEFT angibt.

Diese Variante kommt (deswegen?) in dem Beispiel nicht vor.
02.02.2016 um 16:54

AntwortenPositiv Negativ
44 Stimmen

Nein, diese Variante ist nicht extra weggelassen worden.

Ich habe es gerade noch einmal selbst getestet und es funktioniert auch mit Leerzeichen:

echo '"';
echo str_pad('abc', 6, ' ', STR_PAD_LEFT);
echo '"';  

Teste das mal. Das geht bei mir einwandfrei und ergibt "   abc".
03.02.2016 um 16:53

Positiv Negativ
Antworten
Antworten

Über den Autor

AvatarDer Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen

 

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.