In diesem Tutorial geht es darum, dass ich euch die Funktion split() näher bringe. Außerdem werden wir versuchen, die Parameter und Verwendungszwecke mithilfe eines Beispiels erläutern.
Anmerkung: Diese Funktion ist ab der Version: 5.3.0 DEPRECATED deklariert und in der PHP Version: 7.0 entfernt wurden. Bitte verwenden Sie explode(); oder preg_split();, um einen String in ein Array umzuwandeln.
Der Syntax
array split ( string Suchmuster, string Zeichenkette [, int Beschränkung] )
Beschreibung:
Mithilfe der Funktion split() lassen sich Zeichenketten in Arrays zerlegen. Des Weiteren muss man ein bestimmtes Suchmuster bestimmen und auf eine Zeichenkette anwenden. Man sollte jedoch beachten, dass bei diesem Suchmuster die Groß- und Kleinschreibung auch eine wichtige Rolle spielen. Denn Suchmuster entscheiden ganz strikt zwischen der Schreibweise.
Zudem wird jede Zeichenkette nur dann unterbrochen, wenn es auch einen Suchtreffer gab oder wenn man eine maximale Länge mit angegeben hat. Wenn aber mehr Suchtreffer gibt, als in der Beschränkung angeben wurde, dann wird dieser Rest im letzten Array angelegt und dann am Ende wiedergegeben.
Jedoch muss man auch darauf achten, dass bei regulären Ausdrücken besondere Zeichen geschützt werden müssen, wie auch bei anderen normalen regulären Ausdrücken. Zusätzlich sollte man diese Funktion auch nur benutzen, wenn sie reguläre Ausdrücke benötigen für die Suche.
Beispiel 1:
In diesem Beispiel werden wir das ein oder andere regulären Ausdrücke verwenden, die im array als Trenner genutzt werden können.
Code:
<?php
/* String, welchen wir für unsere Vorbereitung benötigen */
$string = 'Ich-bin.Der_dieser+mit=';
$string .= 'einem%anderen!Freund(bleibt';
/* Diese Zeichenkette wollen wir am Ende gesplittet haben. In diesem
Satz wird alles als ein Trenner erkannt, dass kein Buchstabe ist, daher
werden -; .; _; =; % und ! als Trennzeichen wahrgenommen. */
$arr = split('[^a-zA-Z]', $string);
echo '<br>Split mit [^a-zA-Z]-><code>';
print_r($arr);
echo '</code><br>';
?>
Ergebnis:
Split mit [^a-zA-Z] ->
Array ( [0] => Ich [1] => bin [2] => Der [3] => dieser
[4] => mit [5] => einem [6] => anderen
[7] => Freund [8] => bleibt )
Beispiel 2:
Das Splitten selbst wird auf insgesamt drei Trennvorgänge beschränkt, daher werden maximal 3 Array-Elemente zurückgeben. Zusätzlich werden hier nur die ersten beiden Teilstrings extrahiert und das Element, das zuletzt kommt, enthält den Rest der Zeichenkette. Das Array wird dann mit print_r() ausgegeben.
Code:
<?php
$string = 'Ich-bin.Der_dieser+mit=';
$string .= 'einem%anderen!Freund(bleibt';
$arr = split('[^a-zA-Z]', $string, 3);
echo '<br>Split mit maximal 3 Arrayelemente-><code>';
print_r($arr);
echo '</code><br>';
?>
Ergebnis:
Split mit maximal 3 Arrayelemente ->
Array ( [0] => Ich [1] => bin
[2] => Der_dieser+mit=einem%anderen!Freund(bleibt )
Beispiel 3:
Das folgende Suchmuster definiert eine Reihe von Buchstaben (große und kleine) als einen Trenner. [a-zA-z] legt fest, welche Zeichen vorkommen, wobei die Klammern ein Zeichenintervall darstellen. Mit dem Zeichen +
legen wir fest, dass erst Zeichen aufeinanderfolgen müssen, damit es als Trennerstring erkannt wird. Danach folgt ein Feld, das alle Sonderzeichen enthält „(“ auch Ziffern, wenn welche sich in der Zeichenkette befinden. Zum Schluss stellte das erst und das letzte Element, denn Anfang und das Ende unseres Strings dar.
Code:
<?php
$string = 'Ich-bin.Der_dieser+mit=';
$string .= 'einem%anderen!Freund(bleibt';
$arr = split('[a-zA-Z]+', $string);
echo '<br>Split mit [a-zA-Z]+-><code>';
print_r($arr);
echo '</code><br>';
?>
Ergebnis:
Split mit [a-zA-Z]+ ->
Array ( [0] =>
[1] => -
[2] => .
[3] => _
[4] => +
[5] => =
[6] => %
[7] => !
[8] => (
[9] => )
Wenn sie einen Text trennen möchten, ohne einen regulären Ausdruck, empfehle ich ihnen die Funktion explode(). Diese Funktion ist bedeutend schneller. Alternativ kann man auch mit preg_split() arbeiten, es kann manchmal sein, dass diese Funktion schneller als split() ist. Dies ist aber vom Fall zu Fall unterschiedlich.