split() liefert kein Ergebnis

Thomas D

Erfahrenes Mitglied
Hallo!

Ich quäle mich derzeit mit der PHP-Funktion split(). Folgender Code liefert überraschenderweise kein Ergebnis:

Code:
$test = "20.03.1999";
$test = split ('[/.-:]', $test);
	
for ($c=0; $c<sizeof ($test); $c++)
	echo "|" .$test[$c];

Die Ausgabe lautet in diesem Fall ||||||||||| Was mache ich falsch :confused:

MfG, Thomas D.

BTW: Die Regular Expression müsste eigentlich passen, da die Zerlegung einer Zeitangabe (jedoch mit substr() und nicht split()) wunderbar funktioniert. substr() kann ich hier leider nur sehr kompliziert verwenden, da die Zeitangabe bei mir aus nur 2 (Stunde, Minute), die Datumsangabe jedoch aus 3 Blöcken besteht (Tag, Monat, Jahr).
 
Du musst den Bindestrich im Suchmuster entweder an den Anfang oder das Ende der Zeichenklasse setzen oder es maskieren. Denn der Ausdruck [.-:] ist eine Zeichenspanne, die mit [./0123456789:] äquivalent ist.
 
Hallo Thomas,

bitte beachte, dass die split()-Funktion ab PHP 5.3.0 als veraltet markiert ist und damit in absehbarer Zeit wohl nicht mehr unterstützt wird (vgl. http://de.php.net/split). Stattdessen solltest Du lieber direkt auf die Funktionen der PCRE-Erweiterung setzen; dieser Seite liefert dabei Hilfe beim Umstieg.

Schöne Grüße,

Moritz

<edit>Habe gerade gesehen, von wann der Thread ist - vor drei Jahren war PHP 5.3 wohl noch kein Thema ;-)</edit>
 
Zurück