W3docs

explode()

Die Funktion explode() teilt einen string in ein array von Teilstrings auf. Die Syntax der Funktion explode() lautet wie folgt:

Die Funktion explode() zerlegt einen string in ein array von Teilstrings und trennt ihn überall dort, wo ein gewähltes Trennzeichen (Delimiter) vorkommt. Sie ist der Standard-PHP-Weg, um durch Trennzeichen strukturierten Text — eine CSV-Zeile, ein Datum, eine kommagetrennte Tag-Liste — in Daten umzuwandeln, über die man iterieren kann. Sie ist das Gegenstück zu implode(), das ein array wieder zu einem string zusammenfügt.

Diese Seite behandelt die Syntax, den optionalen Parameter $limit (einschließlich negativer Werte), den Rückgabewert, häufige Parsing-Muster und typische Fehlerquellen.

Syntax

explode(string $separator, string $string, int $limit = PHP_INT_MAX): array
ParameterErforderlichBeschreibung
$separatorjaDer Trennstring, an dem aufgeteilt wird. Er wird wörtlich abgeglichen, nicht als regulärer Ausdruck.
$stringjaDer Eingabe-string, der aufgeteilt werden soll.
$limitneinSteuert, wie viele Teile zurückgegeben werden (siehe unten). Standardwert ist PHP_INT_MAX.

Die Funktion gibt ein array von strings zurück. Wenn $separator ein leerer string ist (""), wirft explode() einen ValueError (in PHP 8+; in älteren Versionen wurde false zurückgegeben). Wenn das Trennzeichen im string nicht vorkommt, ist das Ergebnis ein array mit einem Element, das den gesamten ursprünglichen string enthält.

Einfaches Beispiel

php— editable, runs on the server

Wir definieren das Trennzeichen ,, rufen explode() auf und geben das resultierende array mit print_r() aus. Jedes Element enthält alles zwischen zwei Trennzeichen.

Die Ausgabe dieses Codes lautet:

Array
(
    [0] => Hello
    [1] => World!
)

Die Anzahl der Teile begrenzen

Der optionale Parameter $limit verändert, wie der string aufgeteilt wird:

  • Positives Limit — das array enthält höchstens so viele Elemente; das letzte Element enthält den nicht weiter geteilten Rest des Strings.
  • Null — wird als 1 behandelt, sodass der gesamte string als einzelnes Element zurückgegeben wird.
  • Negatives Limit — alle Teile werden zurückgegeben außer den letzten |limit| Teilen.

Positives Limit

php— editable, runs on the server

Mit einem Limit von 3 wird der string in höchstens drei Elemente aufgeteilt. Das letzte Element enthält den Rest des Strings ungeteilt — three,four,five — anstatt verworfen zu werden.

Die Ausgabe dieses Codes lautet:

Array
(
    [0] => one
    [1] => two
    [2] => three,four,five
)

Dies ist praktisch, wenn nur die ersten paar Felder benötigt werden, zum Beispiel explode(' ', $logLine, 2), um einen Zeitstempel vom Rest einer Log-Meldung zu trennen.

Negatives Limit

Ein negatives Limit entfernt Elemente vom Ende des Ergebnisses:

<?php
$string = "one,two,three,four,five";
print_r(explode(",", $string, -2));
?>

Die letzten zwei Teile (four und five) werden entfernt:

Array
(
    [0] => one
    [1] => two
    [2] => three
)

Häufige Parsing-Muster

Ein typischer Praxisfall ist das Lesen eines durch Trennzeichen strukturierten Datensatzes und das Bereinigen jedes Feldes per trim:

<?php
$csvRow = "Jane , Doe ,  [email protected] ";
$fields = array_map('trim', explode(",", $csvRow));
print_r($fields);
?>

Die Ausgabe enthält saubere, leerzeichenfreie Werte:

Array
(
    [0] => Jane
    [1] => Doe
    [2] => [email protected]
)

explode() lässt sich auch gut mit der list()-Destrukturierung kombinieren, um benannte Teile aus einem string zu extrahieren:

<?php
$date = "2026-06-21";
[$year, $month, $day] = explode("-", $date);
echo "Year: $year, Month: $month, Day: $day";
?>

Ausgabe:

Year: 2026, Month: 06, Day: 21

Fallstricke

  • Das Trennzeichen ist wörtlich, kein regulärer Ausdruck. explode("-", ...) teilt an einem Bindestrich, niemals an einem Muster. Wenn ein regulärer Ausdruck benötigt wird (zum Beispiel zum Aufteilen an beliebigen Leerzeichen), sollte stattdessen preg_split() verwendet werden.
  • Mit explode() kann man nicht in einzelne Zeichen aufteilen. Ein leeres Trennzeichen löst einen ValueError aus. Um einen string in einzelne Zeichen aufzuteilen, sollte str_split() verwendet werden.
  • Mehrere aufeinanderfolgende Trennzeichen erzeugen leere Elemente. explode(",", "a,,b") gibt ["a", "", "b"] zurück. Mit array_filter() lassen sie sich herausfiltern, wenn sie nicht benötigt werden.
  • Kein Trennzeichen gefunden? Es wird trotzdem ein gültiges array zurückgegeben — ein array mit einem Element, das den gesamten string enthält — sodass der Zugriff auf [0] immer sicher ist.

Verwandte Funktionen

  • implode() / join() — das Gegenteil: ein array zu einem string zusammenfügen.
  • str_split() — einen string in Teile fester Länge (oder Zeichen) aufteilen.
  • preg_split() — mit einem regulären Ausdruck aufteilen.
  • substr() — einen Teil eines Strings anhand der Position extrahieren.
  • trim() — Leerzeichen von jedem Teil nach dem Aufteilen entfernen.

Übungen

Übung
Was ist die Funktion von 'explode' in PHP?
Was ist die Funktion von 'explode' in PHP?
Was this page helpful?