webForumDet fria alternativet

Skriva ut allt som finns på en server?

PHP

9 svar · 386 visningar · startad av Kenchu

Medlem sedan apr. 2004113 inlägg
Frågan#1

Ni vet de där "Index of Blah blah blah"-sidorna, som skapas automatiskt om man inte har någon index-fil på en server? Om inte, här är ett exempel:

http://w1.873.telia.com/~u87309837/

Exakt hur fungerar det? Kan man inte göra något liknande med php? Vore rätt tuftt att ha en sådan där, fast som faktiskt ser.. ehm... snygg ut. :)

Medlem sedan juni 20015 009 inlägg
#2

Vill du ändra den befintliga eller bara ha en egen som listar filer? För du kan inte bara ändra den som finns på servern. Men på det andra sättet kan du göra det enkelt. Bara till att öppna en mapp och läsa av alla filer och sedan skriva ut dem.

Medlem sedan apr. 2004113 inlägg
#3

Qimen,
inte ändra den befintliga, utan att göra en egen. :)

Jaha? Öppna en mapp? Läsa av alla filer? Skriva ut dem? Hmmm.... Ok....

VA? Hur gör man allt det där då? :)

Medlem sedan okt. 2001538 inlägg
#4

Hej

Först borde du kolla med is_dir(), att det verkligen är en mapp du försöker öppna.
Sedan använda opendir() för att öppna mappen.
Sedan en while-loop som i sig kollar att readdir() inte returnerar falskt (gör den det så finns det inga (fler) filer/mappar i mappen)
Och sedan lite extra kontroller inuti loopen angående om det är en fil eller en mapp som håller på att behandlas just nu.
Ett alternativ kunde ju vara att i loopen bara lagra resultatet i en stor array, som man sedan kan sortera på eget vis och sedan i efterhand skriva ut som man vill.
Till sist stänger man artigt mappen man öppnat, med closedir()

/r: Sedan får man ju använda funktioner likt filemtime() och filesize() för att få reda på när den senast modifierades / filstorleken...

Lite snabbt ihophafsad, icke-kontrollerad, och säkerligen icke-fungerande kod:

$dir = "test";

if (is_dir($dir)) {
    $dh = opendir($dir) or die("Could not open " . $dir);
} else {
    die($dir . " is not a directory");
}

while (false !== ($document = readdir($dh))) 
{
    if ($document != ".") {
        if ($document == "..") {
            // detta är "parent directory"
        }
        if (is_dir($document)) {
            // detta är en mapp
        } elseif (is_file($document)) {
            // detta är en fil
        } else {
            // detta är något annat...
        }
    }
}
closedir($dh);

Hoppas detta var till någon nytta

MVH Patrik

Medlem sedan apr. 2004113 inlägg
#5

Hmm.... Ja, det där var ju inte direkt som jag... hade tänkt mig. :)

Fattade inte mycket av koden, och när jag kollar upp de olika funktioner du använder fattar jag ärligt talat inte ens varför du skall ha dem i just den här koden. Finns det ingen funktion som kan ta reda på filnamn hos de filer som ligger i parent directory? Någon funktion som kan ta reda på sökvägen osv?

Medlem sedan maj 20002 993 inlägg
#6

Exakt det gör koden som Patrik81 har postat. ;)

Medlem sedan apr. 2004113 inlägg
#7

Jaha... O_o

Någon som har lust att förklara lite för, tydligen, en idiot hur det funkar? Fattar inte mycket av det där, och php.net hjälper inte mycket det. Koden funkar inte den heller, så det blir lite svårt. :)

Medlem sedan dec. 2002529 inlägg
#8

Kenchu skrev:

Jaha... O_o

Någon som har lust att förklara lite för, tydligen, en idiot hur det funkar? Fattar inte mycket av det där, och php.net hjälper inte mycket det. Koden funkar inte den heller, så det blir lite svårt. :)

Kan du något om PHP? I annat fall; köp/låna en bok och plugga.
Koden är ju bara ett grovt exempel.

Medlem sedan apr. 2004113 inlägg
#9

Visst, kan göra forum och sånt där, men detta verkar ju vara något helt annat.

Medlem sedan apr. 2004113 inlägg
#10

jahapp, läste lite mer på php.net, och kom fram med följande:


<?php

$handle = opendir('.');

while (false !== ($file = readdir($handle))) {
	echo "<a href=\"". realpath($file). "\">$file</a><br>";
}

closedir($handle);

?>

Inte lika komplicerat?

EDIT

Okay, den var helt åt helvete... ^^

256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)