Wenn man eine Zeichenkette in abrufbaren Einzelteile zerlegen möchte, müssen Sie den nachfolgenden Befehl verwenden:
strtok(string $Zeichenkette, string $trennzeichen)
strtok() ist eine Funktion in PHP, die zur Zerlegung von Strings in Token (kleinere Teile) verwendet wird. Es nimmt zwei Parameter an, einen String und ein Token, und bricht den übergebenen String anhand des angegebenen Tokens in kleinere Teile auf. Es liefert auch jedes Mal ein Teil des Strings, wenn es aufgerufen wird, bis der gesamte String aufgebraucht ist. Dies ist eine sehr nützliche Funktion, wenn Sie einen langen String aufteilen und analysieren möchte.
Mithilfe der Funktion strtok() lassen sich durch selbst definierte Trennzeichen Zeichenketten in viele Teile (Token) teilen. Im Gegensatz zu der Funktion explode() werden hier alle Teile der Zeichenkette zurückgegeben. Wenn Sie eine Zeichenkette aufspalten wollen, so müssen Sie dies nur beim ersten Aufruf angeben. In nachfolgenden Aufrufe, müssen Sie lediglich das Trennzeichen angeben. Dabei muss ein Trennzeichen nicht nur aus einem Zeichen bestehen, sondern kann auch aus mehreren Trennzeichen bestehen. Das heißt, dass genau nach der Reihenfolge in der Zeichenkette gegangen wird.
Beispiel 1:
In diesem Beispiel habe ich mir den Satz „Hier steht ein Satz. Und hier noch einer.“ ausgesucht. Wir versuchen also, dass diese zwei Sätze zu einem gemacht werden, indem wir ganz einfach die Punkte entfernen. Außerdem versuchen wir noch, dass jeder der beiden Sätze in einer eigenen Zeile steht.
PHP Code für Beispiel 1:
<?php
$zeichenkette = "Hier steht ein Satz. Und hier noch einer.";
echo strtok($zeichenkette, ".")."<br>";
echo strtok(".");
?>
Ergebnis
Hier steht ein Satz
Und hier noch einer
Erklärung
Zuerst haben wir unsere Zeichenkette definiert durch $zeichenkette. Danach haben wir mithilfe der strtok() Funktion alle Punkte in der Zeichenkette entfernt.
Der Befehl <br> kommt aus der Programmiersprache HTML und erzeugt unseren Zeilenumbruch nach jedem Punkt.
Beispiel 2:
Für dieses Beispiel nehmen wir den Satz „Hallo ich bin hier“. Wir wollen versuchen, dass vor jedem Wort in unserer Zeichenkette „DU:“ steht.
PHP Code für Beispiel 2:
<?php
$zeichenkette = " Hallo ich bin hier ";
$token = strtok($zeichenkette, " ");
while ($token) {
echo "DU:$token ";
$token = strtok(" ");
}
?>
Ergebnis
DU: Hallo DU: ich DU: bin DU: hier
Erklärung
Zuerst müssen wir wieder unsere Zeichenkette mit $zeichenkette definieren. Danach definieren wir noch unser Token, daher lassen wir diesmal einfach ein Leerzeichen statt, wie oben eine <br>. Das heißt, dass unser Trennzeichen ein Leerzeichen ist. Jetzt müssen wir noch eine While-Schleife machen, damit vor jedem Token, das wir erhalten, ein DU: gesetzt wird.