(PHP 4, PHP 5, PHP 7)
preg_split — Zerlegt eine Zeichenkette anhand eines regulären Ausdrucks
$pattern
, string $subject
[, int $limit
= -1
[, int $flags
= 0
]] )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, 0 oder NULL
bedeutet "kein Limit"
und wie es in PHP Standard ist, kann NULL
verwendet werden um den
Parameter flags
zu überspringen.
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 der dazugehörige Versatz in der Zeichenkette
zurückgegeben. Beachten Sie, 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.
Beispiel #1 preg_split() Beispiel: Eine Zeichenkette in ihre Bestandteile 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 Eine Zeichenkette in Übereinstimmungen mit dem Suchmuster und deren Versatz zerlegen
<?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 Sie die Leistung regulärer Ausdrücke nicht benötigen, können Sie stattdessen schnellere (wenngleich einfachere) Alternativen wie explode() oder str_split() verwenden.
Falls keine Übereinstimmungen gefunden wurden, wird ein Array mit nur einem Element zurückgegeben, das die übergebene Zeichenkette enthält.