Texte aufteilen - preg_split()

Diese Funktion teilt Texte mit Hilfe eines Suchmusters auf. Wem also die Funktion explode() nicht mächtig genug ist, sollte sich diese Funktion anschauen. Die Syntax lautet: int preg_split (string Suchmuster, string Zeichenkette [, int Limit [, int Flags]])

Die Funktion erwartet mindestens zwei Parameter, optional können noch zwei weitere angegeben werden.

Suchmuster
Der Reguläre Ausdruck samt Delimiter und Modifier
Zeichenkette
Der Text, der durchsucht werden soll
Limit
Optional, die maximale Anzahl an zurückgelieferten Teilen
Flags
Optional, erlaubt die Übergabe bestimmter Parameter

Als Rückgabe erhält man ein Array, welches die einzelnen Teile als Elemente enthält oder FALSE, falls ein Fehler auftrat.

Optionale Parameter

Neben den zwei benötigten Parameter kann man auch bei preg_split() noch zwei weitere angeben, die die Verarbeitung beeinflussen können.

Der Parameter Limit

Durch Angabe des Parameters Limit kann die maximale Anzahl der erzeugten Teile bestimmt werden. Folgender Aufruf der Funktion <?PHP $teile preg_split($pattern$subject3); ?> erzeugt zum Beispiel maximal 3 Teile.

Will man die Anzahl der erzeugten Teile nicht begrenzen, kann man den Parameter Limit einfach weglassen. Sollen jedoch als vierter Parameter noch Flags angegeben werden, muss für Limit -1 angegeben werden, was keiner Begrenzung der Teilezahl entspricht, aber die Angabe eines vierten Parameters ermöglicht.

Die Flags von preg_split()

Durch die Angabe des vierten Parameters kann man die Rückgabe von preg_split() zusätzlich beeinflussen. Insgesamt können hier drei Flags notiert werden, die auch beliebig miteinander kombiniert werden können. Sie müssen dann über den Operator | verknüpft werden.

PREG_SPLIT_NO_EMPTY

Ist dieses Flag gesetzt, werden Teile, die leer sind, nicht zurückgegeben. Will man also keine Teile extrahieren, die dem Leerstring entsprechen, soll man dieses Flag benutzen. Damit spart man sich das anschließende Durchlaufen des erzeugten Arrays, um Leerstrings zu entfernen.

PREG_SPLIT_DELIM_CAPTURE

Ist dieses Flag gesetzt, werden zusätzlich zu den erzeugten Teilen die im Suchmuster definierten Unterausdrücke zurückgegeben.

PREG_SPLIT_OFFSET_CAPTURE

Ist dieses Flag gesetzt, werden neben den erzeugten Teilen noch die entsprechenden Positionen im Suchtext zurückgegeben. Man erhält nun wiederum ein Array als Rückgabe, allerdings sind die Elemente diesmal keine Strings sondern Arrays, die den jeweiligen Teil und die Position des Auftreten enthalten.

Verwandte Themen
Kapitelnavigation