strtok
(PHP 4, PHP 5, PHP 7, PHP 8)
strtok — Zerlegt einen String
Beschreibung
$string
, string $token
): string|falseAlternative Signatur (benannte Parameter werden nicht unterstützt):
$token
): string|false
strtok() zerlegt den String
string
in kürzere Strings (Token), wobei jeder Token
durch ein beliebiges Zeichen aus token
getrennt
wird. Das bedeutet, wenn Sie einen String wie "Dies ist ein
Beispiel-String" haben, können Sie ihn in seine einzelnen Worte zerlegen,
indem Sie das Leerzeichen als token
verwenden.
Beachten Sie, dass nur der erste Aufruf von strtok das
string
-Argument verwendet. Jeder Folgeaufruf von
strtok benötigt nur den zu beachtenden token
, um
herauszufinden, wo sich diese im aktuellen String befinden. Um neu zu
beginnen oder einen neuen String zu zerlegen, müssen Sie nur erneut strtok
mit dem string
-Parameter aufrufen, damit die
Funktion neu initialisiert wird. Beachten Sie, dass Sie mehrere Token im
token
-Parameter angeben können. Der String wird dann
an jeder Stelle zerlegt, an der eines der im
token
-Argument angegebenen Zeichen gefunden wird.
Hinweis:
Diese Funktion verhält sich etwas anders, als man es vielleicht erwartet, wenn man mit explode() vertraut ist. Zunächst wird eine Folge von zwei oder mehr zusammenhängenden
token
-Zeichen in der ausgewerteten Zeichenkette als ein einzelnes Trennzeichen betrachtet. Außerdem wird eintoken
, das sich am Anfang oder Ende der Zeichenkette befindet, ignoriert. Wenn zum Beispiel eine Zeichenkette";aaa;;bbb;"
verwendet wird, würden aufeinanderfolgende Aufrufe von strtok() mit";"
alstoken
die Zeichenketten "aaa" und "bbb" und dannfalse
zurückgeben. Als Ergebnis wird die Zeichenkette in nur zwei Elemente aufgeteilt, währendexplode(";", $string)
ein Array mit 5 Elementen zurückgeben würde.
Parameter-Liste
-
string
-
Der String, der in kleinere Zeichenketten (Token) zerlegt werden soll.
-
token
-
Die Trennzeichen, die auf
string
angewendet werden sollen.
Rückgabewerte
Der aktuelle String-Token oder false
, falls keine weiteren
Token mehr vorhanden sind.
Beispiele
Beispiel #1 strtok()-Beispiel
<?php
$string = "Dies ist\tein Beispiel-\nString";
/* Sowohl das Tabulator- als auch das Newline-Zeichen werden
zusätzlich zum Leerzeichen als Token zum Zerlegen verwendet */
$tok = strtok($string, " \n\t");
while ($tok !== false) {
echo "Wort=$tok<br />";
$tok = strtok(" \n\t");
}
?>
Beispiel #2 Verhalten von strtok() beim Auffinden eines leeren Teils
<?php
$erster_token = strtok('/irgendetwas', '/');
$zweiter_token = strtok('/');
var_dump($erster_token, $zweiter_token);
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
string(11) "irgendetwas" bool(false)
Beispiel #3 Der Unterschied zwischen strtok() und explode()
<?php
$string = ";aaa;;bbb;";
$parts = [];
$tok = strtok($string, ";");
while ($tok !== false) {
$parts[] = $tok;
$tok = strtok(";");
}
echo json_encode($parts),"\n";
$parts = explode(";", $string);
echo json_encode($parts),"\n";
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
["aaa","bbb"] ["","aaa","","bbb",""]
Anmerkungen
Diese Funktion kann sowohl das
boolsche false
zurückliefern, als auch einen nicht-boolschen Wert, welcher zu false
ausgewertet wird.
Weitere Informationen entnehmen Sie bitte dem Abschnitt über die
boolschen Typen. Benutzen Sie deshalb
den === Operator,
um den Rückgabewert dieser Funktion zu überprüfen.