manu: Regulärer Ausdruck geht nicht, warum ?

Hallo,

für einen Dateibrowser in PHP versuche ich über Reguläre Ausdrücke den Dateityp zu finden, und dann einen Text dazu auszugeben. Z.B,

.psd -> Photoshop-Datei

Mit der Funktion preg_match() wird jetzt auf die passende Zeichenfolge gesucht:

if (preg_match(".psd$",$filename))
{
    $text  = "Photoshop-Datei";
    $image = "psd.gif";
} else
{
    $text  = "Datei";
    $image = "default.gif";
}

Laut meinem Buch müsste der Reguläre Ausdruck eigentlich stimmen:

1.) Punkt escapen, damit er als Punkt interpretiert wird
2.) Dollar-Zeichen für das Ende des Suchstrings

ABER:
Er geht immer in das else-Anweisung rein. Weiß jemand wieso ???

  1. Hi,

    Er geht immer in das else-Anweisung rein. Weiß jemand wieso ???

    weil der Wert der Variable $filename nicht auf ".psd" endet, sondern z.B. auf ".PSD" oder ".psd
    ".

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. ABER:
    Er geht immer in das else-Anweisung rein. Weiß jemand wieso ???

    Weil die Delimiter fehlen.

  3. Hi,

    @ick:
    Danke, das war's. Ich hatte das Regex von einer eregi() Funktion, und da hat's wohl funktioniert. Dabei hab' ich dann wohl einfach die Grundlagen von PRCE-Vergessen ;-)

    @Cheatah:
    aran lag's nicht, aber tritzdem danke. Gross- und Kleinschreibung muss ich noch beachten.

    Ciao, Manu