Ich probier hier schon ewigs rum aber irgendwie wills nicht funktionieren.
(Die Pfade etc. sind alles korrekt)
Es geht darum dass ich Bilder in einem Ordner namens "pic" habe und die sind im in den folgenden beiden Formaten vorhanden:
pic/XX_XXXXXXXXXX.jpg
pic/XX_XXXXXXXXXX_tmb.jpg
wobei die X für eine beliebige Zahl (0-9) stehen. Am Anfang 2 Zahlen und hinten 10 Zahlen. Ein reales Beispiel für ein Bild wäre:
pic/86_1181424201.jpg
pic/86_1181424201_tmb.jpg
nun möchte ich mit glob nur die Bilder ohne tmb im Dateinamen herauslesen. Mein bisheriger Ansatz sieht so aus (wobei $id eine vorhandene Zahl ist):
glob("pic/".$id."_([0-9]{10}).jpg");
wo ist nur der Fehler :(?
Wie sieht der restliche Code und die Ausgabe deines Scriptes aus?
naja die $id ist wie gesagt eine Zahl
hier mal der wichtigste Teil meines "debug"-scripts:
echo $id;
$bilder = glob("pic/".$id."_([0-9]{10}).jpg");
print_r($bilder);
Viel mehr ist im Script nicht... ist bis jetzt nur eine Test-Datei.
Dabei kommt bei $id immer die gewollte Zahl heraus aber print_r gibt nur "Array()" aus.
Wenn ich das Muster auf glob("pic/".$id."_*.jpg");
vereinfache funktioniert es mit den Bildern nur kommen da halt ebben auch die Bilder mit _tmb mit rein.
mhhh....warum nicht so?
glob('./pic/[^a-zA-Z]+.jpg');
nachdem alles andere ja ziffern sind...musst du doch nur die Buchstaben ausschliessen ;)
btw.: dein beispiel stimmt nicht mit dem Muster überein -.- nur so nebenbei
Quote
btw.: dein beispiel stimmt nicht mit dem Muster überein -.- nur so nebenbei
aja kleine Verschreiber :)
aber leider geht deine Variante auch nicht ?(
... böses php :P
Quote
The glob() function searches for all the pathnames matching pattern according to the rules used by the libc glob() function, which is similar to the rules used by common shells. No tilde expansion or parameter substitution is done.
Shell globbing != Reguläre Ausdrücke
Das bestmögliche dürfte
glob('pic/'.$id.'_[0-9]*.jpg')
sein, viel mehr wird nicht unterstüzt (siehe man 7 glob).Falls du wirklich Regexps benutzen willst, musst du vermutlich mit einem relativ allgemein gehaltenen glob() wie oben arbeiten und danach nochmal mit preg_match filtern.
Quote
Original von xyz-84
[quote]The glob() function searches for all the pathnames matching pattern according to the rules used by the libc glob() function, which is similar to the rules used by common shells. No tilde expansion or parameter substitution is done.
Shell globbing != Reguläre Ausdrücke
Das bestmögliche dürfte
glob('pic/'.$id.'_[0-9]*.jpg')
sein, viel mehr wird nicht unterstüzt (siehe man 7 glob).Falls du wirklich Regexps benutzen willst, musst du vermutlich mit einem relativ allgemein gehaltenen glob() wie oben arbeiten und danach nochmal mit preg_match filtern.[/quote]
mhh...ich dachte immer, der nutzt RegExps....naja so kann man sich täuschen
tja das ist doof... naja macht nichts ich habe eine ganz passable Notlösung gefunden:
da es immer 2 Bilder zu einer bestimmten Nummer gibt lese ich einfach nur jeden zweiten Arrayindex aus :P