Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Volgorde van uitlezen directorie

Anoniem
Obitorium
5 antwoorden
  • 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>
    ";
    $counter++;
    if ($counter == $columns){
    $counter= 0;
    echo"</tr>
    ";
    echo"<tr>
    ";
    }
    }
    }
    }

    if ($home == ""){
    echo"</tr></table><br>&copy 2002 Blabla

    ";
    }
    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>
    ";
    }
    echo "<a href=$scriptname?id=$id><img src=\"../images/imgs/up.gif\" width=\"60\" height=\"25\" alt=\"terug naar thumbnails\" border=\"0\"></a>
    ";
    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>
    <table class='table_news' border='0' cellpadding='0' cellspacing='0'>
    ";
    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








  • [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 readdir hoofdstukje van de manual?

    Btw. de code hierboven is absoluut onleesbaar (imho).
  • [quote:4df82fa930="Annie"]Btw. de code hierboven is absoluut onleesbaar (imho).[/quote:4df82fa930]IMHO ook al ;)
  • 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
  • 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.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.