Avatar billede syswatch Novice
02. august 2005 - 16:34 Der er 13 kommentarer og
1 løsning

Vise indholdet af en mappe

Hej Alle.
Nu har jeg siddet og søgt her på forummet, men ikke fundet hvad jeg skulle bruge.
Det jeg har brug for er en function der lister alle filerne i en bestemt mappe. (Denne mappe indeholder KUN jpg filer.)
Når den har fundet alle filerne skal den udskrive filnavnet i en tabel med 4 på hver række, og så bare derned af.
Jeg kan simplethen ikke finde ud af at kode dette, så jeg håber der er en venlig sjæl der lige vil vise mig hvordan.
Avatar billede Slettet bruger
02. august 2005 - 16:40 #1
http://www.eksperten.dk/artikler/255

Nederst vises hvordan du på ret få linjer kan få vist en mappes indhold vha dir() objektet.

--
pacroon
Avatar billede Slettet bruger
02. august 2005 - 16:41 #2
Hov, forkert link

http://www.eksperten.dk/artikler/266 .. 'pinligt' :)
Avatar billede Slettet bruger
02. august 2005 - 16:46 #3
Mht tabellen kan man måske lave noget á la det her i scriptet:

$break = 0;
echo "<table>";

if ($break % 4 == 0) {
echo "<tr>";
}

while ($file = $dir->read()) if ($file != '.' && $file != '..')
echo "<td>".$file."</td>";
$dir->close;

if ($break % 4 == 0) {
echo "</tr>";
}
echo "</table>";

Nu er jeg ikke sikker på det virker, jeg har ikke lige testet det.
Avatar billede Slettet bruger
02. august 2005 - 16:48 #4
Ja det gør det ikke, jeg prøver lige igen :)

$break = 0;
echo "<table>";

if ($break % 4 == 0) {
echo "<tr>";
}

while ($file = $dir->read()) if ($file != '.' && $file != '..') {
echo "<td>".$file."</td>";
$break++;
}
$dir->close;

if ($break % 4 == 0) {
echo "</tr>";
}
echo "</table>";
Avatar billede syswatch Novice
02. august 2005 - 16:50 #5
pacroon.
Det script lister da ikke nogen filer, hvor definer man hvilket bibliotek der er tale om ?
Avatar billede Slettet bruger
02. august 2005 - 16:51 #6
I artiklen, det jeg pastede var en slags viderebygning.

Men jeg fandt lige endnu en fejl:

while ($file = $dir->read()) if ($file != '.' && $file != '..') {
echo "<td>".$file."</td>";
$break++;
}

.. til

while ($file = $dir->read()) {
  if ($file != '.' && $file != '..') {
    echo "<td>".$file."</td>";
    $break++;
  }
}
Avatar billede Slettet bruger
02. august 2005 - 16:52 #7
De der forkortede ifs og whiles synes jeg aldrig bliver så overskueligt når der er flere linjer :)
Avatar billede syswatch Novice
02. august 2005 - 16:55 #8
Okay. Hvis jeg paster scriptet fra artiklen ind, og retter biblioteket til, så viser den kun 1 fil. Har du evt mulighed for at sætte det sammen, så jeg kan se det, for nu gør du det lidt forvirrende for mig med alle de rettelser.
Avatar billede Slettet bruger
02. august 2005 - 16:57 #9
Ja, det prøver jeg lige. Beklager
Avatar billede syswatch Novice
02. august 2005 - 17:01 #10
smutter lige offline et par timer, tjecker dit svar i aften.
Avatar billede Slettet bruger
02. august 2005 - 17:19 #11
Så tror jeg, at jeg har den :)

$break = 1;
echo "<table border='1'>\n";
if ($break % 4 == 0) {
    echo "<tr>\n";
}
for($i=0; $i < count($filenames); $i++) {
    if($filenames[$i] != '.' && $filenames[$i] != '..') {
        echo "<td>".$break."-".$filenames[$i]."</td>\n";
        if ($break % 4 == 0) {
            echo "</tr>\n<tr>\n";
        }
        $break++;
    }
}
echo "</tr>\n";
echo "</table>\n";
Avatar billede syswatch Novice
03. august 2005 - 08:22 #12
Hey...
Jeg forstår ikke rigtig dette stykke kode, for når jeg ser html outputtet af tabellen, så mangler der en start <tr>. Og jeg tror det er her den går galt.
if ($break % 4 == 0) {
    echo "<tr>\n";
}
Avatar billede Slettet bruger
03. august 2005 - 18:53 #13
Har du fundet ud af det, siden du accepterede mit svar? :)
Avatar billede syswatch Novice
04. august 2005 - 08:01 #14
Jeg fandt ikke den rigtige løsning, men fandt en måde at komme uden om problemet på, ved at sætte en <tr> inden koden.
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