Vedr filhåndtering i PHP

Tags:    php

while ($filnavn = readdir($mappe)) {
if ($filnavn != "." && $filnavn != ".." && $filnavn != "Thumbs.db") {
echo <a href=\\"".$mappenavn.$filnavn."\\" target=\\"_blank\\">".$filnavn."</a>
}
}

Her er noget kode der viser hvad der ligger i et bibliotek.

Men jeg har et problem. For hvis jeg skal vise indholdet af biblioteket viser den både mapper og filer.

Kan man ikke filtrere det så man kun ser mapper, eller kun ser filer?

Jeg fandt den her is_dir(), men hvis det er den der skal bruges så ved jeg ikke hvordan i ovenstående. Håber du kan hjælpe.

-----------
mvh
Kim



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Hvis du forstår overstående, så burde du også kunne gætte dig til løsningen (men det skal da ikke udelukke dig fra lidt hjælp ;-)):

Fold kodeboks ind/udKode 


Nu vil koden kun udskrive filer (undtagen Thumbs.db selvfølgelig).
Det er jo trods alt bare endnu et tjek, der skal udføres.

Link til funktion is_dir:
http://dk.php.net/manual/da/function.is-dir.php

Koden kan i øvrigt formindskes til:
Fold kodeboks ind/udKode 


Da is_dir(".") og is_dir("..") også vil give et positivt resultat.

1101110100010110000101000001

Killers don\\'t end up in jail - they end up on a high-score!

[Redigeret d. 03/04-05 19:39:21 af Nicolai Lyster Fersner]



while ($filnavn = readdir($mappe)) {
if ($filnavn != "." && $filnavn != ".." && $filnavn != "Thumbs.db") {
echo <a href=\\"".$mappenavn.$filnavn."\\" target=\\"_blank\\">".$filnavn."</a>
}
}

Her er noget kode der viser hvad der ligger i et bibliotek.

Men jeg har et problem. For hvis jeg skal vise indholdet af biblioteket viser den både mapper og filer.

Kan man ikke filtrere det så man kun ser mapper, eller kun ser filer?

Jeg fandt den her is_dir(), men hvis det er den der skal bruges så ved jeg ikke hvordan i ovenstående. Håber du kan hjælpe.

-----------
mvh
Kim


Det du skal bruge er is_dir i din kode. Du skal bare tjekke efter om det er en dir. Altså noget lig
if(is_dir($vejenTilDetDerSkalTjekkes) !== false) { print $DetDerSkalPrintes } else { print "";}

Jeg har selv udviklet et sæt funktioner som kan udskrive maper og filer i en given mappe. Jeg sidder dog ikke ved min egen computer ligenu, men jeg vil da med glæde poste dem til dig, hvis du vil se hvordan jeg gør.

Slot\\\\ - All your base are belong to us
http://www.sigsys.dk



Tak for hjælpen

MEn den viser stadig mapperne :(

while ($filnavn = readdir($mappe)) {
if ($filnavn != "Thumbs.db" && !is_dir($filnavn)) {
echo "<a href=\\"".$mappenavn.$filnavn."\\" target=\\"_blank\\">".$filnavn."</a> - <a href=\\"uploadbilleder_slet.php?fj=fj&pic=".$mappenavn.$filnavn."&fil=".$filnavn."\\">Slet billede</a><br><br>";
}
}

Har jeg lavet fejl



Tak for hjælpen

MEn den viser stadig mapperne :(

while ($filnavn = readdir($mappe)) {
if ($filnavn != "Thumbs.db" && !is_dir($filnavn)) {
echo "<a href=\\"".$mappenavn.$filnavn."\\" target=\\"_blank\\">".$filnavn."</a> - <a href=\\"uploadbilleder_slet.php?fj=fj&pic=".$mappenavn.$filnavn."&fil=".$filnavn."\\">Slet billede</a>";
}
}

Har jeg lavet fejl


Hmm nej, det tror jeg ikke. Prøv med den oprindelige ændrede formel, altså:
Fold kodeboks ind/udKode 


1101110100010110000101000001

Killers don\\'t end up in jail - they end up on a high-score!



is_dir($mappe.$filnavn)

ellers aner den ikke hvad for en fil du vil tjekke :)




while ($filnavn = readdir($mappe)) {
if ($filnavn != "." && $filnavn != ".." && $filnavn != "Thumbs.db") {
echo <a href=\\"".$mappenavn.$filnavn."\\" target=\\"_blank\\">".$filnavn."</a>
}
}

Her er noget kode der viser hvad der ligger i et bibliotek.

Men jeg har et problem. For hvis jeg skal vise indholdet af biblioteket viser den både mapper og filer.

Kan man ikke filtrere det så man kun ser mapper, eller kun ser filer?

Jeg fandt den her is_dir(), men hvis det er den der skal bruges så ved jeg ikke hvordan i ovenstående. Håber du kan hjælpe.

-----------
mvh
Kim


SOm lovet vil jeg lige dumpe mine funktioner. Lig mærke til at den ikke kan dybere end en dir fra din start dir :) Det er noget jeg ikke lige har haft tid eller overskud til at ordne, men heller ikke noget jeg endnu har haft brug for.

funktioner.php
Fold kodeboks ind/udKode 


Jeg har så inkluderet den på en side og bruger så funktionerne til at navigere rundt med. Funktionerne kunne så bruges på følgende måde.

index.php
Fold kodeboks ind/udKode 


Bruger du /her/er/min/start/dir som din start dir og går et level ned fx. /her/er/min/start/dir/lvl_1 så kan den godt finde ud af det, men går du så et level mere ned fx. /her/er/min/start/dir/lvl_1/lvl_2 så vil du få en fejlmeldning af typen "Dette er ikke en dir" da den vil tage /her/er/min/start/dir og lvl_2 uden at tage lvl_1. Det skal nok rettes. Du kan jo prøve :) Ikke noget jeg har rodet særlig meget med.
Håber du kan bruge det til et eller andet.

Slot\\\\ - All your base are belong to us
http://www.sigsys.dk



t