Vis alle filer i en mappe.

Tags:    php

Ja, har været inde og søge, og kan godt se at problemet har været oppe et par gange, men har desværre ikke kunnet få svar på mit problem.

Har følgende kode til at vise alle filer i en valgt mappe (plus submapper):

Fold kodeboks ind/udKode 

Det ser ud til der er flere problemer med denne kode. For det første, så kører koden VIRKELIGT langsomt. Dette har højest sandsynligt noget at gøre med mit problem nummer to. For koden hopper ikke ud af løkken (melder muligvis ikke FALSE), når der ikke er flere filer i mappen. Istedet bliver den ved med at loope igennem, indtil siden er meget meget lang. Resten af siden (efter den har vist de filer den skulle) bliver bare fyldt op med en masse tomme rækker. Dvs. koden bliver simpelthen ved med at loope indtil den bliver stoppet af max_execution_time eller hvad det nu hedder.

Har også haft funktionen lavet med noget allá:

Fold kodeboks ind/udKode 

...men i ovenstående eksempel kræver det at jeg manuelt angiver hvor mange filer der er i mappen, og det problem ville jeg helst gerne være fri for.

Så, alt i alt - en der ved hvordan man tæller hvor mange filer der er i mappen (så jeg kan bruge for-funktionen), eller en der kan hjælpe med den øverste kode, og rette DEN lidt til.

Håber der er en eller anden der kan hjælpe lidt, nu har jeg siddet og bøvlet med det hele aftenen.

Mvh
Daniel Grau



Indlæg senest redigeret d. 31.10.2006 20:34 af Bruger #5601
5 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Dette simple script burde virke.

[pre]
<?php

$dir = "mappe";

if ($dirhandle = opendir($dir)) //prøv at åbne mappen
{
while ($file = readdir($dirhandle)) //kør igennem alle filerne i mappen
{
if ($file != "." && $file != "..") //sørger for at vi ikke får 2 filer der hedder . og ..
{
echo $file;
echo "<br />";
}
}
}

?>



Dette simple script burde virke.

[pre]
<?php

$dir = "mappe";

if ($dirhandle = opendir($dir)) //prøv at åbne mappen
{
while ($file = readdir($dirhandle)) //kør igennem alle filerne i mappen
{
if ($file != "." && $file != "..") //sørger for at vi ikke får 2 filer der hedder . og ..
{
echo $file;
echo "<br />";
}
}
}

?>[/code]


Det var eddermanme hurtigt... Nåede ikke engang at opdatere min post før dit svar var der :)

Har to spørgsmål:
1. Jeg kan ikke få is_dir() til at virke i nedenstående kode.
2. Hvordan springer jeg over filen "Thumbs.db".

Fold kodeboks ind/udKode 


Den her burde kunne gøre det...
Fold kodeboks ind/udKode 




Dette simple script burde virke.

[pre]
<?php

$dir = "mappe";

if ($dirhandle = opendir($dir)) //prøv at åbne mappen
{
while ($file = readdir($dirhandle)) //kør igennem alle filerne i mappen
{
if ($file != "." && $file != "..") //sørger for at vi ikke får 2 filer der hedder . og ..
{
echo $file;
echo "<br />";
}
}
}

?>[/code]


Det var eddermanme hurtigt... Nåede ikke engang at opdatere min post før dit svar var der :)

Har to spørgsmål:
1. Jeg kan ikke få is_dir() til at virke i nedenstående kode.
2. Hvordan springer jeg over filen "Thumbs.db".

Fold kodeboks ind/udKode 


----------------------------------------------
EDIT:

Fandt ud af det med is_dir()... Skulle jo selvfølgelig linke direkte til filen (dvs også med $dir foran) istedet for kun til $file.



Indlæg senest redigeret d. 31.10.2006 21:02 af Bruger #5601
Tak skal i have begge to.. Min hjerne er da helt gået i baglås her til aften... Men skidtet virker perfekt, og det er vel det vigtigste :)



Det var så lidt ;).



t