So langsam wird es Zeit, dass du dir darüber Gedanken machst, was das Funktionsprinzip der Lösungsansätze ist, welche wir dir hier präsentieren. Hier noch einmal zur Erklärung:
preg_match() sucht nach einem regulären Ausdruck Parameter 1 in einer Zeichenkette Parameter 2. Optional kannst du einen Parameter 3 angeben.
Wenn du einen Parameter 3 angibst, behandelt ihn preg_match() als Array und füllt die gefundenen Werte ein. Und zwar an erster Stelle den gesamten String, worin Übereinstimmungen gefunden wurden, an zweiter bis n-ter Stelle die expliziten Übereinstimmungen, die du im regulären Ausrduck mit Klammern gekennzeichnet hast (siehe Beispiel):
PHP:
preg_match("/[a-zA-Z_]*-(\d{3})-(\d{3})[a-zA-Z]*\.png/", $bildname, $matches);
echo "Groesse 1: {$matches[1]}<br />Groesse 2: {$matches[2]}";
/[a-zA-Z_]*-(\d{3})-(\d{3})[a-zA-Z]*\.png/ zur Erklärung:
/ bezeichnet den Beginn des Strings
[a-zA-Z_]* matched mit einer beliebigen Anzahl Gross-/Kleinbuchstaben und Unterstrichen
Dann folgt fix der Gedankenstrich -
Danach kommt die erste Grösse (\d{3}): \d bedeutet eine Zahl von 0-9 und {3} bedeutet "genau drei Mal". Die Klammern darum herum bewirken, dass der so gefundene Wert in das Array $matches geschrieben wurde. Danach noch ein Gedankenstrich, das Selbe in Grün für die zweite Bilddimension, weitere beliebige Zeichen und zu guter Letzt die Dateiendung.
Damit solltest du deine Funktion mit wenig Aufwand weiterentwickeln können. Solltest du das weiter ausbauen wollen, wirst du nicht umhin kommen etwas über reguläre Ausdrücke selbst zu lernen.
So long, Igäl