W3docs

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): string

Parameter

ParameterErforderlichBeschreibung
$stringJaDer zu füllende Eingabe-String.
$lengthJaDie 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_stringNeinDer String, der zum Füllen verwendet wird. Standardmäßig ein einzelnes Leerzeichen. Kann aus mehreren Zeichen bestehen.
$pad_typeNeinWohin 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.

php— editable, runs on the server

"Hello" ist 5 Zeichen lang und wir haben eine Länge von 10 angegeben, daher fügt str_pad() links 5 "0"-Zeichen ein:

00000Hello

Die 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          1

Fallstricke und Hinweise

  • Die Funktion kürzt niemals einen String. Ist $length kürzer als die Eingabe, gibt str_pad() die Eingabe unverändert zurück. Verwenden Sie substr(), 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 $length abweichen kann. Vor PHP 8.3 gibt es kein eingebautes mb_str_pad().
  • Für nullaufgefüllte Zahlen ist sprintf() mit einem Format wie %05d oft klarer als str_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 die str_pad() prüft.
  • trim() — die umgekehrte Idee: umgebende Zeichen entfernen.

Übungen

Übung
Was macht die PHP-Funktion str_pad()?
Was macht die PHP-Funktion str_pad()?
Was this page helpful?