str_pad()
Erfahren Sie mehr über die PHP-Funktion str_pad(), mit der ein String auf eine bestimmte Länge aufgefüllt wird. Mit Beispielen und Hinweisen.
Die PHP-Funktion str_pad() füllt einen String mit einem anderen String auf, bis er eine angegebene Länge erreicht. Sie kommt immer dann zum Einsatz, wenn die Ausgabe eine feste Breite benötigt: Zahlen mit führenden Nullen (007), das Ausrichten von Spalten in einem Bericht, das Erstellen von Datensätzen fester Breite für Legacy-Systeme oder das Zentrieren einer Beschriftung in einem Banner.
Diese Seite behandelt die Syntax, die einzelnen Auffüll-Modi, häufige Fallstricke sowie praktische Beispiele, die Sie direkt ausführen können.
Syntax
str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): stringParameter
| Parameter | Erforderlich | Beschreibung |
|---|---|---|
$string | Ja | Der zu füllende Eingabe-String. |
$length | Ja | Die Ziellänge des Ergebnisses. Ist sie kleiner oder gleich der aktuellen Länge von $string, findet kein Auffüllen statt und $string wird unverändert zurückgegeben. |
$pad_string | Nein | Der String, der zum Füllen verwendet wird. Standardmäßig ein einzelnes Leerzeichen. Kann aus mehreren Zeichen bestehen. |
$pad_type | Nein | Wohin das Auffüllen erfolgt: STR_PAD_RIGHT (Standard), STR_PAD_LEFT oder STR_PAD_BOTH. |
Die Funktion gibt den aufgefüllten String zurück. Sie kürzt nie — sie macht einen String immer nur länger oder gibt ihn unverändert zurück.
Grundlegendes Beispiel: eine Zahl mit führenden Nullen auffüllen
Ein häufiger Anwendungsfall ist die Formatierung einer Zahl auf eine feste Breite durch Auffüllen mit führenden Nullen.
"Hello" ist 5 Zeichen lang und wir haben eine Länge von 10 angegeben, daher fügt str_pad() links 5 "0"-Zeichen ein:
00000HelloDie drei Auffüll-Modi
Das vierte Argument steuert, auf welcher Seite aufgefüllt wird.
<?php
echo str_pad("Hi", 8, "-", STR_PAD_RIGHT), "\n"; // Hi------
echo str_pad("Hi", 8, "-", STR_PAD_LEFT), "\n"; // ------Hi
echo str_pad("Hi", 8, "-", STR_PAD_BOTH), "\n"; // ---Hi---
?>Ausgabe:
Hi------
------Hi
---Hi---Mit STR_PAD_BOTH wird das Auffüllen auf beide Seiten aufgeteilt. Ist die Anzahl der Füllzeichen ungerade, geht das zusätzliche Zeichen nach rechts:
<?php
echo str_pad("Hi", 7, "-", STR_PAD_BOTH), "\n"; // --Hi---
?>Praktisches Beispiel: einen Bericht ausrichten
Da str_pad() Spalten mit fester Breite erzeugt, eignet es sich gut für Nur-Text-Tabellen. Beschriftungen werden rechts aufgefüllt, Zahlen links:
<?php
$items = ["Apples" => 3, "Bread" => 12, "Milk" => 1];
foreach ($items as $name => $qty) {
echo str_pad($name, 10) . str_pad($qty, 5, " ", STR_PAD_LEFT) . "\n";
}
?>Ausgabe:
Apples 3
Bread 12
Milk 1Fallstricke und Hinweise
- Die Funktion kürzt niemals einen String. Ist
$lengthkürzer als die Eingabe, gibtstr_pad()die Eingabe unverändert zurück. Verwenden Siesubstr(), wenn Sie die Länge auch begrenzen möchten. - Mehrzeichige Füll-Strings können überschießen —
str_pad()schneidet sie jedoch ab. Wird"x"auf Länge 6 mit"ab"aufgefüllt, ergibt sich"xababa": der Füll-String wiederholt sich und wird genau an der Ziellänge abgeschnitten. - Die Funktion zählt Bytes, nicht Zeichen. Bei mehrbytigen (UTF-8) Texten kann ein akzentuiertes oder nicht-lateinisches Zeichen mehrere Bytes umfassen, sodass die sichtbare Breite von
$lengthabweichen kann. Vor PHP 8.3 gibt es kein eingebautesmb_str_pad(). - Für nullaufgefüllte Zahlen ist
sprintf()mit einem Format wie%05doft klarer alsstr_pad().
Verwandte Funktionen
str_repeat()— einen String eine bestimmte Anzahl von Malen wiederholen.sprintf()— Strings mit Breiten- und Präzisionsangaben formatieren.number_format()— Zahlen mit Tausendergruppentrennzeichen und Dezimalstellen formatieren.strlen()— die Länge ermitteln, gegen diestr_pad()prüft.trim()— die umgekehrte Idee: umgebende Zeichen entfernen.