10. april 2007 - 02:59
Der er
11 kommentarer og 1 løsning
Galleri og sortering
Hej! Har mit galleri i php som henter billeder fra en mappe alt efter hvilken mappe man peger på. Det virker fint, men mine billeder bliver bare vist helt tilfældigt. Billederne hedder i mappen 1,2,3,4 osv.. Hvordan sørger man for de bliver vist i den rækkefølge? Min kode er: if ($handle = opendir($album1)) { echo "<table cellpadding='10px'>"; $picNo = 0; while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { if ($picNo % 5 == 0) { if ($picNo != 0) echo "</tr>"; echo "<tr>"; } ?><td> <a href="#" onClick="window.open('showone.php?a=<? print $_GET[album]; ?>&&v=<? print $file; ?>','<? print $picNO; ?>','location=no,menubar=no,statusbar=no,directories=no,width=660,height=650,left=400'); return false;"> <img width="100" style='border: 2px solid #000000' src="<? print $album."/".$file; ?>"> </a></td> <? $picNo++; } } while ($picNo % 5 != 0) { echo "<td> </td>"; $picNo++; }} echo "</tr>"; echo "</table>"; ?>
Annonceindlæg fra Netic
10. april 2007 - 09:25
#1
Jeg tror denne kode kan hjælpe dig: <?php //http://www.eksperten.dk/spm/772441 $images = glob($album1 ."//{*.jpg,*.JPG}", GLOB_BRACE); if(count($images)>0) { sort($images); echo '<table cellpadding="10px"><tr>'; for($i = 0; $i < count($images); $i++) { if($i % 5 == 0) { echo '</tr><tr>'; } echo '<td>'; echo '<a href="#" onClick="window.open(\'showone.php?a='.$_GET['album'].'&v='.$images[$i].'\',\''.$i.'\',\'location=no,menubar=no,statusbar=no,directories=no,width=660,height=650,left=400\'); return false;">'; echo '<img width="100" style="border: 2px solid #000000" src="'.$album.'/'.$images[$i].'">'; echo '</a></td>'; } echo '</tr></table>'; } ?>
10. april 2007 - 11:50
#2
Jaa nu sorterer den, men den sorterer 1,10,100,101,102,103,104,105,106,107,108,109,110,11,110 osv.. Er der en måde man kan undgå dette, så den sorterer i en helt alm. tal-rækkefølge?
10. april 2007 - 11:56
#3
Ret sort() til natsort()
10. april 2007 - 12:06
#4
Har prøvet, også natcase.. Den udskriver billederne på samme måde. Andre måder man kan sortere på? - I den kode du gav mig så indeholde variablen images nu både album-navn og billede-tal, men kan man få den til kun at indeholde tallet?
10. april 2007 - 12:40
#5
natsort() burde bestemt sortere korrekt. Du kan bruge basename() til kun at få filnavnet.
10. april 2007 - 12:52
#6
Det virker ret mærkeligt, fordi det gør den altså ikke, har bare sat nat foran sort: if(count($images)>0) { natsort($images); echo '<table cellpadding="10px"><tr>'; for($i = 0; $i < count($images); $i++) { if($i % 5 == 0) bruge basename hvor?
10. april 2007 - 13:00
#7
Det er fordi jeg sover. natcase() bibeholder keys, så derfor skal du løbe filerne igennem med: foreach($images AS $image) Kender du den metode? Ellers skal jeg nok rette koden til.
10. april 2007 - 13:06
#8
Nåå.. nej kender den ikke lige, så du må meget gerne rette koden til, vil være nice.
10. april 2007 - 13:18
#9
<?php //http://www.eksperten.dk/spm/772441 $images = glob($album1 ."//{*.jpg,*.JPG}", GLOB_BRACE); if(count($images)>0) { natsort($images); $picNum = 0; echo '<table cellpadding="10px"><tr>'; foreach($images AS $image) { if($picNum % 5 == 0) { echo '</tr><tr>'; } echo '<td>'; echo '<a href="#" onClick="window.open(\'showone.php?a='.$_GET['album'].'&v='.basename($image).'\',\''.$picNum.'\',\'location=no,menubar=no,statusbar=no,directories=no,width=660,height=650,left=400\'); return false;">'; echo '<img width="100" style="border: 2px solid #000000" src="'.$album.'/'.basename($image).'">'; echo '</a></td>'; $picNum++; } echo '</tr></table>'; } ?>
10. april 2007 - 13:25
#10
Yea det virker perfekt :) Endelig fungerer det. Mange tak!
10. april 2007 - 13:32
#11
Svar!
10. april 2007 - 13:36
#12
Takker for point.
Vi tilbyder markedets bedste kurser inden for webudvikling