anoniem Geplaatst: 14 oktober 2002 Delen Geplaatst: 14 oktober 2002 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>© 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>© 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 Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2002 Auteur Delen Geplaatst: 14 oktober 2002 [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). Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2002 Auteur Delen Geplaatst: 14 oktober 2002 [quote:4df82fa930="Annie"]Btw. de code hierboven is absoluut onleesbaar (imho).[/quote:4df82fa930]IMHO ook al ;) Quote Link naar reactie
anoniem Geplaatst: 14 oktober 2002 Auteur Delen Geplaatst: 14 oktober 2002 Ja, dat zag ik ook toen ik deze hierin plakte, heb hem nu wat aangepast. De functie arsort en asort heb ik van de usernotes en heb ik ook nog eens apart opgezocht. Deze wijs je toe aan een array, maar snap niet precies hoe ik dat in mijn code toe kan passen. ::greetz:: Obi Quote Link naar reactie
anoniem Geplaatst: 15 oktober 2002 Auteur Delen Geplaatst: 15 oktober 2002 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. Quote Link naar reactie
anoniem Geplaatst: 15 oktober 2002 Auteur Delen Geplaatst: 15 oktober 2002 Ok, dankjewel voor de reacties. Zal er eens goed voor gaan zitten ;) ::greetz:: Obi Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen