Avatar billede alex15 Nybegynder
08. oktober 2009 - 15:29 Der er 9 kommentarer og
1 løsning

Hvordan situerer man ved brug af foreach(glob())

Hej Eksperter,

Jeg benytter mig af koden foreach(glob()as $xxx){

}

Her går den ind og henter alle billeder i en mappe, og printer billeder ud i følgende rækkefølge:

xxx/xxx/xxx_1.jpg
xxx/xxx/xxx_10.jpg
xxx/xxx/xxx_11.jpg
xxx/xxx/xxx_2.jpg
xxx/xxx/xxx_3.jpg
xxx/xxx/xxx_4.jpg
xxx/xxx/xxx_5.jpg
xxx/xxx/xxx_6.jpg
xxx/xxx/xxx_7.jpg
xxx/xxx/xxx_8.jpg
xxx/xxx/xxx_9.jpg

Hvorfor er det at den ikke printer billederne ud 1,2,3 ... 10, 11 osv?

Hvordan ændre jeg evt. dette?

Alex
Avatar billede yHec Novice
08. oktober 2009 - 16:51 #1
Ved at kalde dem noget andet....

Filnavne er strenge, og sorteres sokm sådan, dvs 1,10,11...19,2,20,21... etc

Detr er meget irriterende!

Jeg plejer at kalde filerne noget andet, specifikt efter dette mønster:
001_navn.jpg
002_navn.jps
.
.
.
010_navn.jpg

Så vil den sortere dem rigtigt.

Det gør det ihvertfald hos mig....

/y
Avatar billede alex15 Nybegynder
08. oktober 2009 - 16:57 #2
Typisk. Men sådan er det jo.

Venter lige med at give dig point, for at se om der kommet et andet svar.

Men i hvert fald tak for hjælpen :)
Avatar billede coderdk Praktikant
09. oktober 2009 - 09:25 #3
Prøv at kigge på natsort()
Avatar billede alex15 Nybegynder
12. oktober 2009 - 23:10 #4
Sorry mit sene svar ...

Men den kommer med følgende fejl når jeg bruger natsort() i stedet for glob():

Fatal error: Only variables can be passed by reference in /var/www/sites/xxx.xxx/xxx.php on line 212

Hvad betyder dette?
Avatar billede coderdk Praktikant
12. oktober 2009 - 23:16 #5
natsort skal have en variabel, du kan ikke give den en funktion...
Avatar billede alex15 Nybegynder
12. oktober 2009 - 23:22 #6
Lige nu gør jeg det således:

foreach (glob("foto/album/".$id."/small_*.*") as $filename) {

//Hvis billede ...

}

Hvordan skal jeg så gøre det nu?
Avatar billede coderdk Praktikant
12. oktober 2009 - 23:27 #7
$files = glob("foto/album/".$id."/small_*.*");
natsort($files);
foreach ($files as $filename) {


det er dog muligt at du skal fjerne stien først (i.e. denne del "foto/album/".$id."/") for at den kan sortere korrekt - men det lader sig gøre ;P
Avatar billede alex15 Nybegynder
12. oktober 2009 - 23:34 #8
Det fungere korrekt ...

1.000 mange gange tak for hjælpen...

Kunne på ingen måde overskue hvis jeg skulle til at lave hele mit galleri om ;)

Men endnu engang tak...

Smid lige et svar

Forsat god aften ...

Alex
Avatar billede coderdk Praktikant
12. oktober 2009 - 23:35 #9
Så lidt :)
Avatar billede alex15 Nybegynder
12. oktober 2009 - 23:42 #10
Ikke for mig, hvis man kigger på hvor mange timer jeg skulle have brugt på at lave hele mit system om ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester