22. oktober 2004 - 10:10Der er
14 kommentarer og 1 løsning
Script til opretning af links til dirs og filer
Jeg har dette script som læser dirs og opretter links til filer. Jeg har fået scriptet av en venlig bruger her på eksperten, men nu vil jeg gerne videreudvikle det.
Jeg ved ikke meget om PHP, men har købt et par bøger - og har fået blod på tanden mht at prøve selv, så i stedet for at give mig koden, vil jeg gerne have hint til hvordan jeg griber sagen an
scriptene skal bruges til at oprette en dynamisk liste over filer, som skal tilgås via en browser.
Jeg forestiller mig at opgaven skal løses med 4 forskellige scripts (måske kan det gøres nemmere)
SCRIPT 1. ligger i root scripets opgave er at oprette links til alle dirs (root/kundenavn/) i mappem (men ikke subdirs til disse)
SCRIPT 2. ligger i root/kundenavn/ scriptets opgave er at læse og oprette links til root/kundenavn/produktnummer/
SCRIPT 3. ligger i root/kundenavn/produktnummer/ scriptets opgave er at læse og oprette links (sorteret efter hvilken mappe de ligger i som overskrift) til filerne: root/kundenavn/produktnummer/dokumentype/dokumenter.fil
------------ Her er det script jeg har, og som jeg forestiller mig at scriptene skal laves ud fra: ------------
<?php //Her skal du skrive mappen der skal udlæses fra $path = "sti/til/mappe"; //DET VIL JEG GERNE UNDGÅ AT SKULLE LAVE MANUELT
function readsubdirs($dir, $subdirs) { if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") { $spaces = ""; for ($i = 0; $i < $subdirs; $i++) { $spaces .= " "; } echo $spaces; if (is_dir($dir."/".$file)) { echo "-><font color='green'>$file</font><br>"; readsubdirs($dir."/".$file, $subdirs+1); } else { echo "<a href=\"".$dir."/".$file."\">".$dir."/".$file."</a><br>"; } } } } closedir($dh); } }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
"Jeg ved ikke meget om PHP, men har købt et par bøger - og har fået blod på tanden mht at prøve selv, så i stedet for at give mig koden, vil jeg gerne have hint til hvordan jeg griber sagen an"
Der er altså ikke tale om at jeg vil have en færdig opgave, men hjælp til at udvikle den selv.
Jeg synes på et tidspunkt at jeg har hørt at scriptet SKAL ligge i roden - er der noget om det eller er det en skrøne ?
Synes godt om
Slettet bruger
25. oktober 2004 - 08:52#5
Det kommer an på det specifikke script. Hvis det benytter den kommandoe, jeg skrev, så skal det ligge i den mappe hvorfra der skal læses - eller i en højere mappe, hvis man tilføjer sti til den undermappe, der skal vises, når man læser mapperne.
Men det kan sagten lade sig gøre at have et script liggende i en mappe, som viser indholdet af andre mapper. Så skal man bare på en eller anden måde fortælle scriptet, hvor det skal læse fra.
nå, ok. Kan vi prøve at tage udgangspunkt i det script jeg har (se øverst) - der har jeg sådan en nogenlunde ide om, hvordan det hænger sammen.
Hvis jeg : - ændrer function readsubdirs($dir, $subdirs) til function readsubdirs($dir) - fjerner "for" sætningen, der starter i linie 12 - fjerner $Subdirs+1 i linie 18
forestillede jeg mig egentligt at jeg havde script1 - men jeg kan ikke umiddelbart se forskel på output i forhold til det fulde script. Hvad kan der være galt ?
Synes godt om
Slettet bruger
25. oktober 2004 - 09:22#7
Den eneste forskel burde være indrykning af undermapper.
Prøv at se på vis kilde i resultatet.
Hvis du ønsker at den kun skal vise den aktuelle mappe, og links til undermapper, er det denne del, der skal rettes i:
så lykkedes det (ved hjælp af udelukkelsesmetoden) at få den til a udskrive kun dirs (og ikke subdirs eller filer) men... Den laver dem ikke som links - og den sorterer ike i alfabetisk rækkefølge
hvordan kommer jeg videre ?
Synes godt om
Slettet bruger
25. oktober 2004 - 10:20#10
For at få den til at lave som links kunne du jo kopiere linien, der før udskrev links til filer. ;-)
Sortering skal man selv tage sig af, da navnene kommer i den rækkefølge, som selve filsystemet giver dem i.
Det kunne gøres på denne måde:
ret
while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") {
til
$dirliste=array(); while (($file = readdir($dh)) !== false) { if ($file != "." && $file != "..") { $dirliste[]=$file; } } closedir($dh); sort($dirliste); foreach($dirliste as $file){
Og så skal der også lige fjernes diss to linier længere nede, da de er flyttet op.
øv - det duer ikke. Jeg må nok erkende at jeg er for "grøn" til det her - jeg må nok hellere læse lidt på lektien først - eller betale mig fra det :-( Vil du være tilfreds med 50 point for din assistance indtil nu ?
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.