Hallo Michael,
if (!preg_match("/[1]([a-z0-9_-]+)(.){1}(gif|jpg|png)$/", $bildname))
besser (da schneller) waere:
if(!preg_match('/[2][a-z0-9]+.(?:gif|jpg|png)$/',$bildname))
gleich mit einem entsprechenden preg_replace zu ersetzen,
das die nicht erlaubten Zeichen sofort entfernt und
wenigstens verkorkste Endungen, wie *.gift oder ählnliches
repariert
[...]
Und nur, wenn keine erlaubte Endung übrig bleibt, sollte
der Benutzer eingreifen müssen.
Ui, nicht einfach. Das grenzt schon an
Aehnlichkeits-Erkennung. Wenn du allerdings nicht auf
Genauigkeit bestehst, wuerde ich es so versuchen:
$text = preg_replace('/^([a-z0-9][a-z0-9]+).[^.]*(gif|jpg|png)[^.]*$/',"$1.$2",$text);
Aber sei ausdruecklich gewarnt! Das ist sehr ungenau. Wenn
du es besser willst, musst du mit einem richtigen Algorithmus
daran.
Gruesse,
CK