Funktion ereg und preg_match

atlantyz

Erfahrenes Mitglied
Hallo zusammen,

ich hab mir irgendwann mal einen Codeschnipsel ausm Internet gezogen und in meinem Skript verwendet.
Dies ist der Schnipsel:

PHP:
ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})", $datum, $teile);

Nun bekomme ich die Fehlermeldung, dass ereg nicht mehr unterstützt wird und man preg_match benutzen soll. Da ich kein Stück reguläre Ausdrücke kann (deswegen habe ich den Codeschnipsel so übernommen), habe ich gedacht, dass wenn ich das ereg einfach nur durch preg_match ersetze, dann mein Skript noch funktioniert. Tja, falsch gedacht. Ich ersetze den Befehl und bekomme dann die Meldung: Unknown modifier '.'
Jetzt gucke ich natürlich blöd. Ich habe schon das Manual zu preg_match gelesen... und da steht, es kann reguläre Ausdrücke. Ich weiß jetzt aber nicht, ob die vielleicht falsch sind.

Kann mir jemand helfen oder muss ich mich jetzt dafür ich das endlos lange, komplizierte Thema reguläre Ausdrücke einlesen?

Was ich einfach nur machen möchte:

Ich möchte das eingegebene Datum aufsplitten und dann die einzelnen Teile in einer anderen Reihenfolge wieder zusammen setzen. Das komplette Schnippselchen sieht dann so aus:

PHP:
function datum_zu_timestamp($datum)
{
	preg_match("([0-9]{2}).([0-9]{2}).([0-9]{4})", $datum, $teile);
	$tag = $teile[1];
	$monat = $teile[2];
	$jahr = $teile[3];
	$timestamp = strtotime ($teile[3]."-".$teile[2]."-".$teile[1]);
	return $timestamp;
	
}

Wie gesagt... funktioniert aber nicht mehr wegen der oben genannten Fehlermeldung.

Für Hilfe wäre ich sehr dankbar.

LG
Joey
 
preg_* braucht BEgrenzungszeichen. Meistens verwendet man /
PHP:
 preg_match("/([0-9]{2}).([0-9]{2}).([0-9]{4})/", $datum, $teile);

Der Grund ist, dass man am Ende noch Parameters mitgeben kann
PHP:
//Gross -Kleinschreibung ignorieren: ein i nach dem / setzen
preg_match("/([0-9]{2}).([0-9]{2}).([0-9]{4})/i", $datum, $teile);
 
Zurück