Avatar billede dotcom1 Nybegynder
04. januar 2005 - 22:57 Der er 6 kommentarer og
1 løsning

Sortere filer i mappe når de skal vises.

Dette script viser billeder i en mappe som klikbare thumbnails:

<?php
function listFiler2($bibliotek) {
  if($bib = @opendir($bibliotek)) {
    while (false !== ($fil = readdir($bib))) {
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
          list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
          $fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" title=\"$fil\" style=\"border:1px solid #333;\"></a>";
      }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = join(" ", $fil_liste);
    } else {
      $liste = "Ingen filer p&aring; lager...";
    }
    return ""
    . "Klik p&aring; et billede for at se det i original st&oslash;rrelse.<br />\n"
    . "<br />\n"
    . "$liste";
  } else {
    die("Kunne ikke &aring;bne mappen: " . $bibliotek);
  }
}

echo listFiler2("fotos");

?>

Det lader til at scriptet viser billederne i en ret tilfældig rækkefølge - kunne man fx. få det til at sortere billederne efter navn når de vises? Kunne man desuden få scriptet til ikke at vise undermapper i den mappe, hvor billederne ligger? Lige nu laver den et lille link, hvis der er undermapper.

Mvh.
Avatar billede jakoba Nybegynder
04. januar 2005 - 23:04 #1
lav den øverste while sætning om til 2 while sætninger:

    $filnavne = array();
    while (false !== ($fil = readdir($bib))) {  // hent alle filnavne
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
        $filnavne[] = $fil;
      }
    }
    sort( $filnavne );        // her sorteres arrayet efter filnavn
    foreach( $filnavne as $fil ) {            // udskriv udaf arrayet
        list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
        $fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" title=\"$fil\" style=\"border:1px solid #333;\"></a>";
    }
Avatar billede dotcom1 Nybegynder
04. januar 2005 - 23:13 #2
Sådan?

<?php

function listFiler2($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    $filnavne = array();
    while (false !== ($fil = readdir($bib))) {  // hent alle filnavne
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
        $filnavne[] = $fil;
      }
    }
    sort( $filnavne );        // her sorteres arrayet efter filnavn
    foreach( $filnavne as $fil ) {            // udskriv udaf arrayet
        list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
        $fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" title=\"$fil\" style=\"border:1px solid #333;\"></a>";
    }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = join(" ", $fil_liste);
    } else {
      $liste = "Ingen filer p&aring; lager...";
    }
    return ""
    . "Klik p&aring; et billede for at se det i original st&oslash;rrelse.<br />\n"
    . "<br />\n"
    . "$liste";
  } else {
    die("Kunne ikke &aring;bne mappen: " . $bibliotek);
  }
}

echo listFiler2("fotos");

?>

Får parse error i linie 29, det er  } else {
Avatar billede dotcom1 Nybegynder
05. januar 2005 - 12:04 #3
Nogen, der kan rette fejlen?
Avatar billede dotcom1 Nybegynder
05. januar 2005 - 16:22 #4
Der var en "}" for meget, men nu viser scriptet hvert billede flere gange - op til 5 eller 6 gange, hvorfor nu det?

<?php

function listFiler2($bibliotek) {

  if($bib = @opendir($bibliotek)) {
    $filnavne = array();
    while (false !== ($fil = readdir($bib))) {  // hent alle filnavne
      if($fil != "." && $fil != ".." && !ereg("^\..+", $fil)) {
        $filnavne[] = $fil;
      }
    sort( $filnavne );        // her sorteres arrayet efter filnavn
    foreach( $filnavne as $fil ) {            // udskriv udaf arrayet
        list($w, $h, $x, $x) = getimagesize( "$bibliotek/$fil" );
        $fil_liste[] = "<a href=\"java script:popit('$bibliotek/$fil', $w, $h)\"><img src=\"$bibliotek/$fil\" width=\"100px\" height=\"100px\" border=\"0\" alt=\"$fil\" title=\"$fil\" style=\"border:1px solid #333;\"></a>";
    }
    }
    closedir($bib);

    if(is_array($fil_liste)) {
      $liste = join(" ", $fil_liste);
    } else {
      $liste = "Ingen filer p&aring; lager...";
    }
    return ""
    #. "Klik p&aring; et billede for at se det i original st&oslash;rrelse.<br />\n"
    #. "<br />\n"
    . "$liste";
  } else {
    die("Kunne ikke &aring;bne mappen: " . $bibliotek);
  }
}

echo listFiler2("fotos");

?>
Avatar billede dotcom1 Nybegynder
05. januar 2005 - 21:43 #5
Jakoba, det virker. Læg lige et svar.
Avatar billede dotcom1 Nybegynder
08. januar 2005 - 12:39 #6
Jakoba?
Avatar billede dotcom1 Nybegynder
08. januar 2005 - 16:37 #7
Lukker.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester