(PHP 4, PHP 5, PHP 7, PHP 8)
preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
Zerlegt die angegebene Zeichenkette anhand eines regulären Ausdrucks.
patternDer Ausdruck, nach dem gesucht werden soll, als Zeichenkette.
subjectDie zu zerlegende Zeichenkette.
limit
Falls angegeben, werden maximal limit
Teilzeichenketten zurückgegeben, wobei der Rest der Zeichenkette in der
letzten Teilzeichenkette abgelegt wird. Ein
limit von -1 oder 0 bedeutet "kein Limit".
flags
flags kann jede Kombination der folgenden Flags
sein (verknüpft mit dem bitweisen | Operator):
PREG_SPLIT_NO_EMPTYPREG_SPLIT_DELIM_CAPTUREPREG_SPLIT_OFFSET_CAPTURE
Falls dieses Flag gesetzt ist, wird mit jeder gefundenen
Übereinstimmung die dazugehörige Position in der Zeichenkette
zurückgegeben. Zu beachten ist, dass dies die Rückgabewerte in
einem Array dahingehend ändert, dass jedes Element ein Array ist,
das aus der übereinstimmenden Zeichenkette als Element
0 und deren Stelle in
subject als Element 1
besteht.
Gibt ein Array zurück, bestehend aus Teilzeichenketten der Zeichenkette
subject, die an den auf das Suchmuster
pattern passenden Stellen zerlegt wurde.
Bei einem Fehler wird false zurückgegeben.
Wenn das übergebene Regex-Muster nicht zu einem gültigen Regex kompiliert werden
kann, wird ein Fehler der Stufe E_WARNING ausgegeben.
Beispiel #1 preg_split()-Beispiel: Eine Zeichenkette in Teile zerlegen
<?php
// zerlegt die Zeichenkette an Stellen mit beliebiger Anzahl von
// Kommata oder Leerzeichen, die " ", \r, \t, \n und \f umfassen
$schluesselwoerter = preg_split("/[\s,]+/", "hypertext language, programming");
print_r($schluesselwoerter);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[0] => hypertext
[1] => language
[2] => programming
)
Beispiel #2 Eine Zeichenkette in einzelne Zeichen zerlegen
<?php
$str = 'string';
$zeichen = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($zeichen);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[0] => s
[1] => t
[2] => r
[3] => i
[4] => n
[5] => g
)
Beispiel #3 Zerlegen einer Zeichenkette in Suchtreffer und Erfassen der Positionen
<?php
$str = 'hypertext language programming';
$zeichen = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
print_r($zeichen);
?>Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
Array
(
[0] => Array
(
[0] => hypertext
[1] => 0
)
[1] => Array
(
[0] => language
[1] => 10
)
[2] => Array
(
[0] => programming
[1] => 19
)
)
Falls die Leistungsfähigkeit regulärer Ausdrücke nicht benötigt wird, können stattdessen schnellere (und gleichzeitig einfachere) Alternativen wie explode() oder str_split() verwendet werden.
Falls keine Übereinstimmungen gefunden wurden, wird ein Array mit nur einem Element zurückgegeben, das die übergebene Zeichenkette enthält.