(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.
pattern
Der Ausdruck, nach dem gesucht werden soll, als Zeichenkette.
subject
Die 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_EMPTY
PREG_SPLIT_DELIM_CAPTURE
PREG_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.