29. juni 2003 - 13:47
Der er
28 kommentarer og 1 løsning
Sortere filer i mappe
Kan man sortere filer fra en mappe efter oprettelses dato ?
Annonceindlæg tema
Cloud & AI
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.
sagtens... man skal bare tænke sig lidt om... ;) (jeg er ikke så god til at bruge sort og andet. om 10 min har jeg lavet script der laver et 3d array med et stigende id som 1 led, og filnavn, størrelse og oprettelsesdato i andet led... så kan du selv lege med sort... Morten
Det var sort, og jeg mener farven sort Skal nok lige ha noget hjælp til at fatte hvad du mente der
ok... laver et script der laver et array som dette... $filer = { [0] = { [filename] = "file1.php" [filesize] = 2043934 [lastMod] = UNIX-TIMESTAMP } [1] = { [filename] = "file2.php" [filesize] = 4132414 [lastMod] = UNIX-TIMESTAMP } } hvis du forstår... --- så skal du bare bruge en funktion til at sortere, men dem har jeg aldrig sat mig ind i... Morten
Det hjalp lidt, hvis jeg bare kan få dem liste som du lige ha vidst
Kan du bruge dette: <? class fil { var $fil,$oprettelse; function fil($navn,$oprettelse) { $this->navn=$navn; $this->oprettelse=$oprettelse; } } function filcmp ($a, $b) { if ($a->oprettelse == $b->oprettelse) return 0; return ($a->oprettelse > $b->oprettelse) ? 1 : -1; } $dir='.'; $d = opendir($dir); while ($f=readdir($d)) { if ($f!='.' && $f!='..') { $s=stat("$dir/$f"); $a[]=new fil($f,$s[10]); } } closedir($d); usort ($a, "filcmp"); reset($a); foreach ($a as $val) { print date("Y-m-d h:i:s",$val->oprettelse).": $val->navn<br>\n"; } ?>
så, nu har jeg lavet det... --- <?php /* Name: FileListLib.php Author: Morten Fangel Date: 6.29.03 /* function FileList($dir){ $returnArr = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if(is_dir($file)){ $returnArr[]['type'] = "DIR"; $returnArr[]['name'] = $file; } else { $returnArr[]['type'] = "FILE"; $returnArr[]['name'] = $file; $returnArr[]['size'] = filesize($dir . "/" . $file); $returnArr[]['lastMod'] = filemtime($dir . "/" . $file); } } } closedir($handle); } return $return; } $Arr = FileList("offer/mappe"); print_r($Arr); ?> ---
erikjacobsen, jeg prøvede lige med dit, men får en røvfuld af fejl. Warning: OpenDir: Permission denied (errno 13) in /var/www/html/sort.php on line 20 Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/html/sort.php on line 21 Warning: closedir(): supplied argument is not a valid Directory resource in /var/www/html/sort.php on line 27 Warning: Wrong datatype in usort() call in /var/www/html/sort.php on line 29 Warning: Variable passed to reset() is not an array or object in /var/www/html/sort.php on line 31 Warning: Invalid argument supplied for foreach() in /var/www/html/sort.php on line 32 Skal nok lige siges at det er et dir uden for webserveren. skal det chmod's ?
Udenfor webserveren? HVad skriver du som dir? "
http://...." - det kan du godt opgive ;(
dir=/server1/hlds_l/cstrike/logs/ Det skal liste log filer fra en cs server
29. juni 2003 - 14:15
#10
gæt selv hvorfor du får fejl... et hint: -- Warning: OpenDir: Permission denied (errno 13) in /var/www/html/sort.php on line 20 --- bedre hint: --- ...Permission denied... --- Morten
29. juni 2003 - 14:15
#11
Nu chmod'ede jeg dir'et til 0666, og nu lister den en fejl på linie 23 for hver fil der er. Linie 23: $s=stat("$dir/$f"); Men den lister fil navnene nedunder, så det er tæt på
29. juni 2003 - 14:18
#12
0555 er bedre
29. juni 2003 - 14:57
#13
det hjælper da ikke at chmod til 0555
29. juni 2003 - 15:01
#14
det gjorde det faktisk. så lige en ting mere: link til visning af indhold
29. juni 2003 - 15:03
#15
det klarer du i udskriften - du laver bare et <a>-tag
29. juni 2003 - 15:07
#16
arhh...
lav selv link, på siden der indlæser:
--
<?php
echo readfile(FILNAVN);
?>
eller noget i den stil...
---
evt benyt mit system:
http://80.199.149.144/DeSi_OFMS_1rc4.zip stadig en del fejl og mangler, men jeg gidder ikke arbejde mere på det...
---
Morten
29. juni 2003 - 15:12
#17
bare href=$PHP_SELF?action=readfile ?? hvordan ved den at det er den fil ?
29. juni 2003 - 15:40
#18
sæt en ?fil=$file&action=read eller noget i den dur Morten
29. juni 2003 - 15:48
#19
Havde jeg også gjorst, men jeg havde glemt stien, og så kunne den self ik åbne den. mange tak for hjælpen
29. juni 2003 - 16:55
#20
Nu kan jeg huske at dine filer ligge udenfor din web-mappe. Så er en ?fil=$file megafarlig, da selv en mindrebegavet hacker vil kunne hente vilkårlige filer fra din maskine. Det skal man ikke gøre uden et par sikkerhedsting!
29. juni 2003 - 17:12
#21
hvad skal jeg så gøre ?
29. juni 2003 - 17:14
#22
sørre for at have noget validering af filnavne, så folk ikke bare kan skrive ?fil=/etc/rc.d&action=read, og så læse hele din rc.d fil... Morten
29. juni 2003 - 17:16
#23
nu henter den så sådan her: read("/sti/til/der/hvor/det/ligger/$fil") og der ligger kun de filer der, og siderne er password beskyttede, så det er vel i orden
29. juni 2003 - 17:21
#24
Nej, det er ikke godt nok
29. juni 2003 - 17:29
#25
read("/sti/til/der/hvor/det/ligger/../../../../../meget/hemmeligt/sted/dagbog.doc")
29. juni 2003 - 17:48
#26
der ligger ikke noget efter der....
29. juni 2003 - 17:50
#27
Det er ikke "efter". Det er "op". Der er adgang til alt.
29. juni 2003 - 17:51
#28
ahhh, nu forstod jeg hvad du mente... sov lige hvad kan jeg gøre ved det
29. juni 2003 - 17:54
#29
lave en if(substr($navPaaFilDerSkalAabnes, "..")){ echo "kan du lade være med at prøve på noget... forbandede scriptkiddie!"; } else{ readfile(...); } eller noget i den dur Morten
Vi tilbyder markedets bedste kurser inden for webudvikling