07. februar 2007 - 09:31
Der er
11 kommentarer og 1 løsning
liste filer i alfabetisk orden
Hej, jeg har en kode der lister alle mine filer i et dir og samtidig kan jeg så slette disse. Dog kan jeg ikke få den til at vise listen i alfabetisk orden, er der nogen der kan se hvad der er galt. Her er min kode: <?php $dir = $_SERVER["DOCUMENT_ROOT"] ."/image/"; if(!isset($_GET['slet'])){ if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if($file != "." && $file != ".." && substr($file, -4) != '.php') { echo "<table border=0><tr>"; echo('<td width=200><a href="/image/'.htmlentities(urlencode($file)).'">'.htmlentities($file).'</a></td>'); echo "<td><a href=\"" . $_SERVER['PHP_SELF'] . "?slet=" . $file . "\">→ delete</a></td>"; echo "</tr></table>"; } } closedir($dh); } } }else{ if(file_exists($dir . $_GET['slet'])){ unlink($dir . rawurldecode($_GET['slet'])); echo "Filen: " . $_GET['slet'] . " blev slettet. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; }else{ echo "Filen: " . $_GET['slet'] . " findes ikke. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } } ?> :-) nyst
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
07. februar 2007 - 10:30
#1
<?php $dir = $_SERVER['DOCUMENT_ROOT'] . '/image/'; //HER BØR DU NOK TJEKKE OM FILEN ER EN KORREKT TYPE, F.EKS. billede-typer (jpeg,jpg,gif, osv...) //ELLER KAN MAN SLETTE ALLE FILER... if(isset($_GET['slet'])) { if(file_exists($dir . $_GET['slet'])) { unlink($dir . rawurldecode($_GET['slet'])); echo "Filen: " . $_GET['slet'] . " blev slettet. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } else { echo "Filen: " . $_GET['slet'] . " findes ikke. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } } else { $images = glob($dir . "{*.jpg,*.JPG,*.jpeg,*.JPEG,*.gif,*.GIF,*.png,*.PNG}", GLOB_BRACE); natsort($images); foreach ($images as $image) { $file = basename($image); echo "<table border=0><tr>"; echo('<td width=200><a href="/image/'.htmlentities(urlencode($file)).'">'.htmlentities($file).'</a></td>'); echo "<td><a href=\"" . $_SERVER['PHP_SELF'] . "?slet=" . $file . "\">→ delete</a></td>"; echo "</tr></table>"; } } ?>
07. februar 2007 - 11:03
#2
Hej jakobdo, tak for svaret der er en lille ting og det er den slener mellem store og små bogstaver, så den lister alle med stort først og så de små bagefter kan man indsætte noget så den lister ligegyldigt om det er med stor eller lille feks a,b,C,d og ikke som nu C,a,b,d :-)
07. februar 2007 - 11:10
#3
Måske denne er bedre: <?php //http://www.eksperten.dk/spm/760990 //CONFIG $fileTypes = array('jpg','jpeg','gif','png'); $dir = '/images/'; //DONT CHANGE BELOW THIS LINE //--------------------------- $realPath = $_SERVER['DOCUMENT_ROOT'] . $dir; if(isset($_GET['slet'])) { $deleteFile = $_GET['slet']; $ext = strtolower(end(explode('.',$deleteFile))); if(preg_match('/^[a-z0-9_.-]+$/i', $deleteFile) && in_array($ext,$fileTypes)) { if(file_exists($realPath . $_GET['slet'])) { unlink($realPath . rawurldecode($_GET['slet'])); echo "Filen: " . $_GET['slet'] . " blev slettet. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } else { echo "Filen: " . $_GET['slet'] . " findes ikke. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } } else { echo "Forkert valg. <a href=\"" . $_SERVER['PHP_SELF'] . "\">Retur</a><br><br>"; } } else { $types = '*.' . implode(',*.',$fileTypes); $types = $types . ',' . strtoupper($types); $images = glob($realPath . '{'.$types.'}', GLOB_BRACE); natsort($images); foreach ($images as $image) { $file = basename($image); echo '<table border=0>'; echo '<tr>'; echo '<td width=200><a href="' . $dir . htmlentities(urlencode($file)) . '">' . htmlentities($file) . '</a></td>'; echo '<td><a href="' . $_SERVER['PHP_SELF'] . '?slet=' . $file . '">→ delete</a></td>'; echo '</tr>'; echo '</table>'; } } ?> Og du skal så evt. natcasesort()
07. februar 2007 - 11:14
#4
den viser intet overhovedet *S*
07. februar 2007 - 11:26
#5
Jeg brugte diret: $dir = '/images/'; i min test! Du skal rette til: $dir = '/image/';
07. februar 2007 - 11:36
#6
ja den burde jeg selv have fanget *S* men den virker på samme måde som den anden altså først store så små bogstaver det burde da kunne lade sig gøre eller? :-)
07. februar 2007 - 11:40
#7
kan man ikke bruge strtolower(); i koden?
07. februar 2007 - 11:43
#8
det burde denne vel $ext = strtolower(end(explode('.',$deleteFile)));
07. februar 2007 - 11:44
#9
Har du rettet denne linie: natsort($images); til: natcasesort($images);
07. februar 2007 - 11:48
#10
så var den der, lige det jeg skulle takker mange gange, det var skønt smider du et svar og fortsat god dag :-)
07. februar 2007 - 11:52
#11
Svar!
07. februar 2007 - 12:13
#12
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling