Die Methode explode("@", $action);
teilt eine Zeichenkette (gespeichert in der Variable $action
) in mehrere Teile auf. Der Trennpunkt für diese Aufteilung ist das „@“-Zeichen. Das Ergebnis ist ein Array, das die getrennten Teile der ursprünglichen Zeichenkette enthält.
Wie es funktioniert
Stellen Sie sich vor, Sie haben einen Satz und möchten ihn bei jedem Leerzeichen in einzelne Wörter zerlegen. explode()
macht genau das, aber anstelle eines Leerzeichens verwendet es hier das „@“-Symbol als Trennzeichen.
Beispiel:
Angenommen, die Variable $action enthält den folgenden String:
„show@user“
Wenn Sie den Code explode("@", $action);
ausführen, passiert Folgendes:
- PHP sucht in der Zeichenkette
"show@user"
nach dem „@“-Zeomen. - Es findet das „@“ und teilt die Zeichenkette an dieser Stelle.
- Das Ergebnis ist ein Array mit zwei Elementen:
["show", "user"]
.
Dieses Array wird dann typischerweise einer neuen Variable zugewiesen, um damit weiterzuarbeiten:
PHP
$parts = explode("@", "show@user");
// $parts ist jetzt: ["show", "user"]
echo $parts[0]; // Gibt "show" aus
echo $parts[1]; // Gibt "user" aus
Vergleichbare Methoden ↔️
Es gibt mehrere andere Funktionen in PHP, die Zeichenketten auf ähnliche Weise manipulieren oder aufteilen können. Hier sind die wichtigsten Alternativen:
preg_split()
: Dies ist die leistungsstärkste Alternative. Anstelle eines einfachen Trennzeichens können Sie hier ein komplexes Muster (einen regulären Ausdruck) verwenden, um die Zeichenkette zu teilen. Das ist nützlich, wenn Sie nach mehreren verschiedenen Trennzeichen gleichzeitig suchen oder komplexere Regeln für die Trennung benötigen.- Beispiel:
preg_split("/[@|-]/", "show@user-123");
würde die Zeichenkette sowohl bei „@“ als auch bei „-“ trennen und das Array["show", "user", "123"]
erzeugen.
- Beispiel:
str_split()
: Diese Funktion teilt eine Zeichenkette in ein Array von gleich langen Teilen auf. Wenn keine Länge angegeben wird, wird jeder einzelne Buchstabe zu einem Element im Array.- Beispiel:
str_split("hello", 2);
würde das Array["he", "ll", "o"]
erzeugen.
- Beispiel:
sscanf()
: Diese Funktion kann eine Zeichenkette gemäß einem bestimmten Format analysieren und die Teile in Variablen extrahieren. Sie ist nützlich, wenn die Struktur der Zeichenkette bekannt und konsistent ist.- Beispiel:
sscanf("date:2025-09-18", "date:%s");
würde den Teil „2025-09-18“ extrahieren.
- Beispiel:
implode()
: Dies ist das genaue Gegenteil vonexplode()
. Sie nimmt ein Array und fügt dessen Elemente mit einem Trennzeichen zu einer einzigen Zeichenkette zusammen.- Beispiel:
implode("-", ["show", "user"]);
würde die Zeichenkette"show-user"
erzeugen.
- Beispiel:
Beispiel preg_split
Wir wollen einen Pfad splitten, zum Beispiel diesen hier: „user/test/folder/file.php“
Methode 1:
$testpath = "user/test/folder/file.php";
$test = preg_split("/[\/.]/", $testpath);
Ausgabe:
Array
(
[0] => user
[1] => test
[2] => folder
[3] => file
[4] => php
)
Erklärung des Patterns /[\/.]/
:
/
: Dies sind die Begrenzer, die den Anfang und das Ende des regulären Ausdrucks markieren.[
und]
: Dies erstellt eine Zeichenklasse. Das bedeutet, es wird jedes einzelne Zeichen gematcht, das sich darin befindet..
: Der Punkt innerhalb der Zeichenklasse steht für einen literalen Punkt./
: Der Schrägstrich ist hier ebenfalls ein literales Zeichen, nach dem gesucht wird.\
: Escapezeichen, dass dafür sorgt, dass / nicht seinen ursprünglichen Zweck erfüllt.
Methode 2:
Die zweite Methode
Da der Schrägstrich /
hier als Trennzeichen für den regulären Ausdruck und als Zeichen zum Splitten verwendet wird, muss er innerhalb des Ausdrucks nicht unbedingt maskiert werden (obwohl es eine gute Praxis ist). Um das Ganze lesbarer zu machen, kannst du auch andere Begrenzer wie #
oder ~
verwenden:
$testpath = "user/test/folder/file.php";
// Alternative Begrenzer, kein Escaping des Slash nötig
$test = preg_split("#[/.]#", $testpath);