Function.strtok
Aus PHP-Wiki
strtok — Zerlegt einen String
Inhaltsverzeichnis |
Beschreibung
string strtok ( string $str , string $token )
string strtok ( string $token )
strtok() zerlegt einen String (str
)
in kürzere Strings (Tokens), wobei jeder Token von im Parameter
token
festgelegten Zeichen begrenzt wird.
Das bedeutet, dass, wenn Sie eine Zeichenkette wie "Dies ist ein
Beispiel-String" haben, Sie ihn in seine einzelnen Worte zerlegen können,
wenn 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 angegebenen Zeichen
gefunden wird.
Parameter-Liste
- str
- Der String, der in kleinere Zeichenketten (Token) zerlegt werden soll.
- token
- Die Trennzeichen, die auf str angewendet werden sollen.
Rückgabewerte
Der aktuelle String-Token.
Beispiele
#1 strtok()
<?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"); } ?>
Das Verhalten der Funktion beim Auffinden eines leeren Teils wurde in PHP 4.1.0 verändert. Zuvor wurde ein leerer String zurückgegeben, wohingegen das neue, korrekte Verhalten diesen Teil des Strings verwirft. Beispiel #2 Altes Verhalten von strtok()
<?php $erster_token = strtok('/irgendetwas', '/'); $zweiter_token = strtok('/'); var_dump($erster_token, $zweiter_token); ?>
Das oben gezeigte Beispiel erzeugt folgende
Ausgabe:string(0) "" string(11) "irgendetwas"
Beispiel #3 Neues Verhalten von strtok()
<?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)
Anmerkungen
WarnungDiese Funktion kann sowohl das Boolsche FALSE zurückliefern, als auch einen nicht-Boolschen Wert, wie zum Beispiel0 oder "". der von einem einfachen if-Statement als FALSE ausgewertet wird. Weitere Informationen entnehmen Sie bitte dem Abschnitt über die Boolsche Typen. Benutzen Sie deshalb den === Operator um den Rückgabewert dieser Funktion zu überprüfen.