08. februar 2006 - 12:40
Der er
20 kommentarer og 1 løsning
Alle filer i mappe ud i array efter type
Sidder og roder med at få alle filer ud fra mappe(../jazz) men vil høre om jeg kan få ud i to arrays efter type. I mappen er kun 2 typer: jazz1.jpg, jazz2.jpg o.s.v.+ jazz1.wav, jazz2.wav o.s.v.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
08. februar 2006 - 12:49
#1
Noget i denne stil burde give dig 2 arrays: <? $dir = "./jazz/"; $navn = array(); $type = array(); $handle=opendir($dir); while (false !== ($file = readdir($handle))) { if($file != "." && $file != "..") { $pathinfo = pathinfo($dir.$file); $navn[] = $file; $type[] = $pathinfo['extension']; } } closedir($handle); ?>
08. februar 2006 - 12:51
#2
Hvis de altid følger det mønster du har beskrevet, så kan du måske: $jazz1 = array(); $jazz2 = array(); .. en eller anden kode der looper gennem filerne i mappen her .. if (substr($filnavn, strlen($filnavn)-5, 1) == 1) { $jazz1[] = $filnavn; } else { $jazz2[] = $filnavn; } Denne linje: substr($filnavn, strlen($filnavn)-5, 1) Tager det tegn der står før fx ".jpg" .. dvs. filerne skal hedde blablaTAL.bla Er det filtypen du vil kigge på kan du i stedet bruge: substr($filnavn, strlen($filnavn)-3, 3) (så får du f.eks. jpg eller wav)
08. februar 2006 - 13:01
#3
det jeg skal bruge er 2 array , det ene med alle jpg-filer det andet med alle wav. prøver lige igennem:)
08. februar 2006 - 13:05
#4
Nåååå: <? $dir = "./jazz/"; $jpg = array(); $wav = array(); $handle=opendir($dir); while (false !== ($file = readdir($handle))) { if($file != "." && $file != "..") { $pathinfo = pathinfo($dir.$file); if($pathinfo['extension'] == "jpg") { $jpg[] = $file; } else { $wav[] = $file; } } } closedir($handle); ?>
08. februar 2006 - 13:07
#5
Jeg tillader mig at låne lidt i dit eksempel jaw :-) <? $jpegs = array(); $waves = array(); $dir = "./jazz/"; $handle=opendir($dir); while (false !== ($file = readdir($handle))) { if($file != "." && $file != "..") { if (substr($file, strlen($file)-5, 1) == "jpg") { $jpegs[] = $file; } else { $waves[] = $file; } } } closedir($handle); ?>
08. februar 2006 - 13:07
#6
arhh... jeg er sgu for langsom :)
08. februar 2006 - 13:09
#7
:)
08. februar 2006 - 13:12
#8
skammeligt ..men jeg kan ikke finde ud af at udskrive de 2 array
08. februar 2006 - 13:13
#9
Eksempelvis: foreach($jpg as $name) { echo $name . "<br />"; }
08. februar 2006 - 13:18
#10
suk jaw>> hvor skal det helt nøjagtig sættes ind
08. februar 2006 - 13:19
#11
Efter du har opbygget dine arrays, så sådan set lige før din afsluttende ?>.
08. februar 2006 - 13:20
#12
ja det troede jeg osse men den viser ikke noget
08. februar 2006 - 13:26
#13
Hm, det virker nu her hos mig. Evt. kan du smide en eller flere echo'er ind i din kode for at se om den overhovedet finder nogen: if($pathinfo['extension'] == "jpg") { echo "Jpg fundet<br />"; .... }
08. februar 2006 - 13:34
#14
ingen output, (ellers har jeg tidligere ved mine første echo-forsøg fået array,array,array o.s.v.)
08. februar 2006 - 13:39
#15
og altså den har godtnok sagt array for hver eneste fil.(3 jpg +3 wav)
08. februar 2006 - 13:51
#16
fatter intet, specielt når det virker hos dig, jaw
08. februar 2006 - 14:00
#17
når jeg lægger echoen ind i dit første forslag får jeg 6 stk jpg fundet
08. februar 2006 - 14:33
#18
Fejlen fundet--filerne var med stort!!
08. februar 2006 - 15:00
#19
jeg er altså meget glad for de hurtige svar -det var bestemt min skyld det fejlede. Og at jeg ikke helt kan få det til at køre med mit eksisterende script er også min egen skyld. Så du må endelig lægge et svar.
08. februar 2006 - 15:07
#20
Den vil du en anden gang kunne "snyde" ved at lave navnet om til lille i tjekket: if(strtolower($pathinfo['extension']) == "jpg") { Men bare det virker :) Selv tak...
08. februar 2006 - 15:10
#21
det HELE virker fint nu så mange tak
Vi tilbyder markedets bedste kurser inden for webudvikling