Ga naar inhoud

Volgorde van uitlezen directorie


anoniem

Aanbevolen berichten

Ik heb een fotoalbum dat thumbs uit een directorie haalt en deze ,inclusief de links naar de originele foto, op de pagina plaatst. Dit gebeurt via onderstaande code: [code:1:123fb9b4d5] <? $columns = 4; $thumb_dir = "$id/thumbs"; $path = "$id"; $scriptname = "fotos.php"; ?> <html> <head><title>Blabla</title> <link rel="stylesheet" href="../css/style.css" type="text/css"> <body> <center> <? if($id==""){ echo " <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr><td><img src=\"../images/imgs/metvrienden.gif\" width=\"198\" height=\"20\"></td></tr> <tr><td><a href=\"fotos.php?id=nijmegen_vierdaagse&name=Vierdaagsefeesten\">Vierdaagsefeesten in Nijmegen </a></td></tr> <tr><td><a href=\"fotos.phpid=verjaardag_marianne&name=verjaardag Marianne\">Bij Marianne's verjaardag</a></td></tr> <tr><td><a href=\"fotos.php?id=verjaardag_marco&name=verjaardag Marco\">Bij Marco's verjaardag</a></td></tr> </table>"; } else{ $counter=0; $nbfiles = 0; $currfile = ""; $fichier[0] = ""; $handle=opendir($path); if ($home == ""){ echo " $name<br> <table border='0' cellpadding='4' cellspacing='10'> <tr>"; } while ($currfile = readdir($handle)){ $extension= strtolower(substr( strrchr( $currfile, "."),1)); if ($extension== "jpg" || $extension== "jpeg"){ $nbfiles++; $currfile = trim($currfile); $fichier[$nbfiles] = $currfile; if ($home == ""){ $currthumbfile = $thumb_dir . "/" . $currfile; echo "<td align='center' valign='middle'><a href= home=1&id=$id&name=$currfile&nr=$nbfiles><img border='0' src= $currthumbfile></a></td>\n"; $counter++; if ($counter == $columns){ $counter= 0; echo"</tr>\n"; echo"<tr>\n"; } } } } if ($home == ""){ echo"</tr></table><br>&copy 2002 Blabla\n\n"; } closedir($handle); if ($home == 1){ if ($nr != 1){ $prevnumber = $nr - 1; echo "<a href=?home=1&id=$id&name=$fichier[$prevnumber]&nr=$prevnumber><img src=\"../images/imgs/back.gif\" width=\"60\" height=\"25\" alt=\"vorige\" border=\"0\"></a>\n"; } echo "<a href=$scriptname?id=$id><img src=\"../images/imgs/up.gif\" width=\"60\" height=\"25\" alt=\"terug naar thumbnails\" border=\"0\"></a>\n"; if ($nr != $nbfiles){ $nextnumber = $nr + 1; echo "<a href=?home=1&id=$id&name=$fichier[$nextnumber]&nr=$nextnumber><img src=\"../images/imgs/forward.gif\" width=\"60\" height=\"25\" alt=\"volgende\" border=\"0\"></a>"; } echo "<br><br>\n<table class='table_news' border='0' cellpadding='0' cellspacing='0'>\n"; echo "<tr><td><img alt=$nr BORDER='0' src=$path/$name></td></tr></table><br><br>&copy 2002 Blabla"; } } ?> </center> </body> </html> [/code:1:123fb9b4d5] Het probleem met dit script is dat hij de laatst gemaakte foto vooraan plaatst en de eerst gemaakte foto achteraan. En dat is nou het probleem: hoe krijg ik dit op de goede volgorde. Het liefst op volgorde van naam, wat nog makkelijker is. Ik heb al wat gevonden over arsort en asort, maar krijg dit niet gecombineerd met deze code. Kan iemand me misschien op weg helpen? ::greetz:: Obi
Link naar reactie
[quote:df93ceed79="Obitorium"] Ik heb al wat gevonden over arsort en asort, maar krijg dit niet gecombineerd met deze code. Kan iemand me misschien op weg helpen? [/quote:df93ceed79]Dan ben je inderdaad op de goede weg. Dus geef maar eens aan wat er niet lukt of waar je op vast loopt. Heb je ook de usernotes al eens goed doorgenomen bij het [url=http://www.php.net/manual/en/function.readdir.php]readdir[/url] hoofdstukje van de manual? Btw. de code hierboven is absoluut onleesbaar (imho).
Link naar reactie
In de geplaatste code wordt een dir uitgelezen en rechtstreeks geschreven naar de client. Wat je moet doen is dit wijzigen zodat je de inhoud in een array zet en deze array doorloopt. Hiervoor kan je met een kleine aanpassing de while loop aanpassen in een foreach (om de array te doorlopen). Voor deze foreach zal je dan alleen nog de inhoud van de dir in een array moeten zetten (voorbeelden hiervan staan weer op de pagina die ik eerder gaf). Succes.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...