In diesem Tutorial geht es darum, dass ich euch die Funktion split() näher bringe. Außerdem werden wir versuchen die Parameter und Verwendungszwecke mit Hilfe eines Beispiels erläutern.
Der Syntax
array split ( string Suchmuster, string Zeichenkette [, int Beschränkung] )
Beschreibung:
Mit Hilfe 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.
Außerdem 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, das bei regulären Ausdrücken besondere Zeichen geschützt werden müssen, wie auch bei anderen normalen regulären Ausdrücken. Außerdem 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äre Ausdruck 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 selber wird auf insgesamt 3 Trennvorgänge beschränkt, daher werden maximal 3 Arrayelemente zurück geben. Außerdem werden hier nur die ersten beiden Teilstrings extrahiert und das Element das zu letzt kommt enthält den Rest der Zeichenkette.
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 Zeicheninterval darstellen. Mit dem Zeichen + legen wir fest, dass erst Zeichen aufeinander folgen 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, das diese Funktion schneller als split() ist. Dies ist aber vom Fall zu Fall unterschiedlich.