---
title: "Thumbnails som kommer i oordning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/141915-thumbnails-som-kommer-i-oordning"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "ullan"
published: "2006-02-02T13:27:39.000Z"
updated: "2006-02-16T17:25:37.000Z"
replies: 7
views: 429
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/141915-thumbnails-som-kommer-i-oordning"
---

# Thumbnails som kommer i oordning

## #1 — ullan, 2006-02-02T13:27Z

Hej. håller på med ett bildgalleri och har fått ett php-script som skriver ut thumbnails.  Thumbnailsen är klickbara och hämtas från olika bildmappar sorterade efter årtal. Allt är väl så långt förutom ett litet irriterande problem:Jag skulle bilja att bilderna visas sorterade årtalsvis, dvs att de nyaste bilderna kommer först och sen sorteras nedåt, dvs 2005, sedan 2004, 2003 osv. Nu hamnar de huller om buller. Nåon som vet hur det går at lösa? Tacksam för hjälp!
Så här ser det ut nu:<http://www.vallnet.nu/mp00361-p1/galleri/index.php?ishome=1&filename=17.jpg&filenumber=1>.

Bifogar koden här:

```
<html> 
<head> 

<script type="text/javascript"><!-- 
function openimg(img){ 
  foto1= new Image(); 
  foto1.src=(img); 
  Controlla(img); 
} 
function Controlla(img){ 
  if((foto1.width!=0)&&(foto1.height!=0)){ 
    viewFoto(img); 
  } 
  else{ 
    funzione="Controlla('"+img+"')"; 
    intervallo=setTimeout(funzione,20); 
  } 
} 
function viewFoto(img){ 
  largh=foto1.width+20; 
  altez=foto1.height+20; 
  stringa="width="+largh+",height="+altez; 
  finestra=window.open(img,"",stringa); 
} 
//--></script> 

</head> 
<body> 

<?php 

function printimages($path) { 
    $dh = opendir($path); 
    if (!$dh) return; 
    $breakcount = 0; 
    while($file = readdir($dh)) { 
        if ($file == "." && $file == "..") continue; 
        $thumb = "$path/$file"; 
    $image = 'stora_bilder/' . basename($path) . '/' . substr($file, 6); 
        if (is_file($thumb)) { 
            // En bild som ligger i en subkatalog. 
?> 
<a href="javascript:openimg('<?=$image?>')"><img height="71" width="71" border="0" src="<?=$thumb; ?>"></a> 
<?php         
            $breakcount++; 
            if ($breakcount > 8) { 
                echo "<br>"; 
                $breakcount = 0; 
            } 
        } 
    } 
    closedir($dh); 
} 

function printthumbs($dir) { 

    $dh = opendir($dir); 
    if (!$dh) return; 

    while($file = readdir($dh)) { 
        $path = "$dir/$file"; 
        if ($file != "." && $file != ".." && is_dir($path)) { 
            // En katalog i images (troligsvis den första året du har) 
            echo "<p>$file</p>"; 
            printimages($path); 
        } 

    } 
    closedir($dh); 

} 

printthumbs("./images"); 

?> 

</body> 
</html>
```

Permalänk: https://www.webforum.nu/p/141915

## #2 — Matte, 2006-02-02T13:58Z

Det borde gå att göra så att du samlar årtalen/katalognamnen i en array, som du sorterar, och sedan loopar. 
Något i stil med:

```php
function printthumbs($dir) { 

    $dh = opendir($dir); 
    if (!$dh) return;

    $images = array();

    while($file = readdir($dh)) { 
        $path = "$dir/$file";
        if ($file != "." && $file != ".." && is_dir($path)) { 
            $images[$file] = $path;
        } 

    } 
    closedir($dh);

    krsort($images);

    foreach ($images as $year => $path) {
        echo "<p>$year</p>"; 
        printimages($path); 
    }

}
```

Permalänk: https://www.webforum.nu/p/1760032

## #3 — ullan, 2006-02-02T14:27Z

Hmmm...när jag  byter ut koden du skickade syns ingenting...måste jag modifiera den på nåot sätt eller borde den fungera som den är?

```
<html> 
<body> 

<?php 

function printimages($path) { 
    $dh = opendir($path); 
    if (!$dh) return; 
    $breakcount = 0; 
    while($file = readdir($dh)) { 
        if ($file == "." && $file == "..") continue; 
        $thumb = "$path/$file"; 
    $image = 'stora_bilder/' . basename($path) . '/' . substr($file, 6); 
        if (is_file($thumb)) { 
            // En bild som ligger i en subkatalog. 
?> 

<a href="javascript:openimg('<?=$image?>')"><img height="71" width="71" border="0" src="<?=$thumb; ?>"></a> 

<?php         
            $breakcount++; 
            if ($breakcount > 8) { 
                echo "<br>"; 
                $breakcount = 0; 
            } 
        } 
    } 
    closedir($dh); 
} 

function printthumbs($dir) { 

    $dh = opendir($dir); 
    if (!$dh) return; 

    $images = array(); 

    while($file = readdir($dh)) { 
        $path = "$dir/$file"; 
        if ($file != "." && $file != ".." && is_dir($path)) { 
            $images[$file] = $path; 
        } 

    } 
    closedir($dh); 

    krsort($images); 

    foreach ($images as $year => $path) { 
        echo "<p>$year</p>"; 
        printimages($path); 
    } 

} 

    closedir($dh); 

} 

printthumbs("./images"); 

?> 

</body> 
</html>
```

Permalänk: https://www.webforum.nu/p/1760038

## #4 — Matte, 2006-02-03T11:36Z

Ändra till

```php
function printthumbs($dir) {

    $dh = opendir($dir);
    if (!$dh) return;

    $images = array();

    while($file = readdir($dh)) {
        $path = "$dir/$file";
        if ($file != "." && $file != ".." && is_dir($path)) {
            $images[$file] = $path;
        }

    }
    closedir($dh);

    krsort($images);

    foreach ($images as $year => $path) {
        echo "<p>$year</p>";
        printimages($path);
    }

}
```

Permalänk: https://www.webforum.nu/p/1760461

## #5 — ullan, 2006-02-15T17:55Z

Hej och tack. Provade att byta ut koden men det syns tyvärr fortfarande inget...kan det vara jag som klistrat in koden fel eller något? Såhär ser det ut:

```
<?php 

function printimages($path) { 
    $dh = opendir($path); 
    if (!$dh) return; 
    $breakcount = 0; 
    while($file = readdir($dh)) { 
        if ($file == "." && $file == "..") continue; 
        $thumb = "$path/$file"; 
    $image = 'stora_bilder/' . basename($path) . '/' . substr($file, 6); 
        if (is_file($thumb)) { 
            // En bild som ligger i en subkatalog. 
?> 
<a href="javascript:openimg('<?=$image?>')"><img height="71" width="71" border="0" src="<?=$thumb; ?>"></a> 
<?php         
            $breakcount++; 
            if ($breakcount > 8) { 
                echo "<br>"; 
                $breakcount = 0; 
            } 
        } 
    } 
    closedir($dh); 
} 

function printthumbs($dir) { 

    $dh = opendir($dir); 
    if (!$dh) return; 

    $images = array(); 

    while($file = readdir($dh)) { 
        $path = "$dir/$file"; 
        if ($file != "." && $file != ".." && is_dir($path)) { 
            $images[$file] = $path; 
        } 

    } 
    closedir($dh); 

    krsort($images); 

    foreach ($images as $year => $path) { 
        echo "<p>$year</p>"; 
        printimages($path); 
    } 

} 
    closedir($dh); 

} 

printthumbs("./images"); 

?>
```

Permalänk: https://www.webforum.nu/p/1768498

## #6 — Fuel, 2006-02-15T18:26Z

Personligen hade jag sparat filnamnen, datum, katalog etc i en mysql db och sorterat från det, hur simpelt som helst... i mitt eget script ligger alla stora bilder  i samma mapp, allt styrs från db, virtuella kataloger etc

Permalänk: https://www.webforum.nu/p/1768510

## #7 — Matte, 2006-02-15T18:48Z

```php
//    closedir($dh); <-- Tag bort 

//} <-- Tag bort

printthumbs("./images");
```

Koppla på dina felmeddelande på din testserver så du ser dina parse error.

Permalänk: https://www.webforum.nu/p/1768517

## #8 — ullan, 2006-02-16T17:25Z

Nu funkar det, tusen tack!!

Permalänk: https://www.webforum.nu/p/1768803

---

Tråden på webben: https://www.webforum.nu/amne/php/141915-thumbnails-som-kommer-i-oordning
