(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.