[php] array om pics in juiste volgorde te printen

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

Acties:
  • 0 Henk 'm!

Anoniem: 40194

Topicstarter
Hallo,

Ik heb een fotoscript:
(sorry voor de marges komt door plakken)
PHP:
1
<? // Configuratie $onderwerp = "Laser Party"; $path2 = "pictures/lasershow"; $path = "$path2/thumbnails"; $clm = "4"; $rows = "5"; $t_w = "150"; $t_h = "100"; $xdl = $page * ($clm * $rows) + $clm; $backcolor = "#000000"; $td_bg = "#333333"; $title = "Party Pics - Pagina ". ($page + 1); $font = "Verdana"; $fontcolor = "#FFFFFF"; $uitleg = "Klik op de foto om deze te vergroten"; $size[1] = "640"; $size[0] = "480" ?> <html> <head> <title><? echo $title ?></title> </head> <body bgcolor="<? echo $backcolor ?>" font="<? echo $fontcolor; ?>" link="#FFFFFF" vlink="#006AD5" alink="#000080"> <p> <center> <b><? print ("$title"); ?></b> </p> <br> <br> Deze foto's zijn genomen tijdens de <i><? echo $onderwerp; ?></i>. <br> <br> <font face="<?echo $font; ?>" color="white" size="1"><? echo $uitleg; ?></font> <br> <br> <? $filecount = 0; $d = dir("$path"); while($entry=$d->read()) { if(eregi(".jpg|.jpeg|.JPG|.JPEG|.gif|.bmp|.png", $entry)){ $filecount++; } } $d->close(); $amountpages = ceil( $filecount / ($clm * $rows) ); $int1 = 0; if (!$page) {     $page = "0"; } while ($int1 < $amountpages) {     $int2 = $int1 + 1;     if ($int1 == $page)     {         echo "<font color=\"white\">[$int2] </font>";     }     else     {         echo "<font color=\"white\">[<A HREF=\"$PHP_SELF?page=$int1\">$int2</A>] </font>";     }     $int1++; } $number = $clm * $rows; $count = -1; $min = (1+($page * $number)); $max = (($page +1) * $number); if(($min=="") AND ($max=="")){$max=$number;$min=1;} if($min=="1"){ $break = $clm;}else{$break = $xdl;} echo "<table border=0 cellpadding=0 cellspacing=4>\n<tr>\n\n"; $d = dir("$path"); while($entry=$d->read()) { if($count < $min){$entry="";} elseif($count > $max){$entry="";} if(eregi(".jpg|.jpeg|.JPG|.JPEG|.gif|.bmp|.png", $entry)): ClearStatCache(); $size = getimagesize("$path2/$entry"); $file_size = fileSize("$path2/$entry"); $file_size = round($file_size / 1024) . "k"; $td_height = $t_h + 8; $td_width = $t_w + 8; print("<td align=\"center\" valign=\"middle\" > <table border=1 bordercolor=\"#000000\" bgcolor=\"#000000\" cellpadding=0 cellspacing=0> <tr width=$td_width height=$td_height> <td width=$td_width height=$td_height align=\"center\" valign=\"middle\" bgcolor=$td_bg>\n <a href=\"#\" border=0 onmouseover=\"window.status='Vergroten';return true;\" onmouseout=\"window.status=''; return true\" onclick=\"showPicture('$path2/$entry',480,640);return false\">\n"); if ($size[1] > $size[0]) { print("[img]\"$path/$entry\"[/img]</a>\n"); } elseif ($size[1] < $size[0]) { print("[img]\"$path/$entry\"[/img]</a>\n"); } elseif ($size[1] == $size[0]) { print("[img]\"$path/$entry\"[/img]</a>\n"); } print("</td></tr><tr><td align=\"center\"><font face=\"$font\" size=\"2\" color=\"$fontcolor\"> $count</td></tr></table>\n</td>\n\n"); if ($count == "$break") { echo "</tr>\n<tr>\n"; $break = $count + $clm ; } endif; $count++; } $d->close(); echo "</tr></table></font>"; $amountpages = ceil( $filecount / ($clm * $rows) ); $int1 = 0; if (!$page) {     $page = "0"; } while ($int1 < $amountpages) {     $int2 = $int1 + 1;     if ($int1 == $page)     {         echo "<font color=\"white\">[$int2] </font>";     }     else     {         echo "<font color=\"white\">[<A HREF=\"$PHP_SELF?page=$int1\">$int2</A>] </font>";     }     $int1++; } ?> ?>

Het nadeel aan dit script is dat hij de laatste foto als eerste uitleest. Dus als het ware DESC sorteert.

Nu heb ik een array gevonden om de naam van de pics eerst in een array te zetten en dan uit te lezen:
PHP:
1
<?$array = read_pictures("de locatie van de dir"); <?php function read_pictures($location) {      // we gather information about the files in the directory     $handle = opendir($location);     while (false !== ($file = readdir($handle)))     {         if ($file != "." &amp;&amp; $file != ".." &amp;&amp; (eregi(".*\.jpg$", $file) || eregi(".*\.gif$", $file) || eregi(".*\.png$", $file) || eregi(".*\.bmp$", $file) || eregi(".*\.jpeg$", $file)))         {             $downloads[] = $file;         }     }     closedir($handle);     natcasesort($downloads);     return $downloads; } ?> ?>

Waar en hoe moet ik de array in het script zetten om het te kunnen vullen en uit te kunnen lezen en wat moet ik dan veranderen / verwijderen?

Of is er een andere oplossing om de pics in ASC volgorde te kunnen uitlezen?

Acties:
  • 0 Henk 'm!

  • _.Luke._
  • Registratie: September 2001
  • Laatst online: 26-07-2021
Op woensdag 26 juni 2002 12:46 schreef Ketje het volgende:
Of is er een andere oplossing om de pics in ASC volgorde te kunnen uitlezen?
Een van je whiles achterstevoren doorlopen?

Trying is the first step towards faillure...


Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 03-02 23:18

D2k

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Anoniem: 40194

Topicstarter
Op woensdag 26 juni 2002 13:00 schreef _.Luke._ het volgende:

[..]

Een van je whiles achterstevoren doorlopen?
dat klinkt zeer logisch maar hoe had je dat in gedachte?

ik bedoel ... ik heb er nog nooit van gehoord

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:46
Op woensdag 26 juni 2002 13:01 schreef Ketje het volgende:

[..]

dat klinkt zeer logisch maar hoe had je dat in gedachte?

ik bedoel ... ik heb er nog nooit van gehoord
Ipv 0 naar 10 van 10 naar 0.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Anoniem: 40194

Topicstarter
Op woensdag 26 juni 2002 13:01 schreef D2k het volgende:
http://www.php.net/manual/en/function.array-reverse.php
wilde gok hoor :X
maar ik heb nu nog geen array in script staan en dat moet er juist wel in

Acties:
  • 0 Henk 'm!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 03-02 23:18

D2k

vooruit in array stoppen, omdraaien en uitprinten

Doet iets met Cloud (MS/IBM)


Acties:
  • 0 Henk 'm!

Anoniem: 40194

Topicstarter
Op woensdag 26 juni 2002 13:25 schreef D2k het volgende:
vooruit in array stoppen, omdraaien en uitprinten
dus dan komt de array er als 3,2,1 uit te zien?
dan draaien naar 1,2,3 en dan printen?
print 1
print 2
etc...

???

en wat moet ik dan uit het script vervangen?

Acties:
  • 0 Henk 'm!

Anoniem: 40194

Topicstarter
Op woensdag 26 juni 2002 13:02 schreef whoami het volgende:

[..]

Ipv 0 naar 10 van 10 naar 0.
dat van 10 - 0 andersom is snap ik :-) maar hoe doe ik dat binnen dit script?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:46
Ik denk dat je nu toch wel al tips genoeg gehad hebt.

Wat je nu vraagt is gewoon een basic programmeer-probleem. We gaan hier echt niet alles voor je voorkauwen hoor... En een beetje basiskennis is wel vereist.
code:
1
2
3
4
while (i < 10)
{
  i = i + 1;
}

veranderen naar:
code:
1
2
3
4
5
i = 10;
while (i > 0 )
{
 i = i - 1;
}

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.