Gå til innhold

Script som viser alle bildene i en katalog?


Anbefalte innlegg

Finnes det et script som viser alle bildene i en katalog?

 

F.eks, en katalog full av avatarer - så er det jo litt upraktisk å bare se navnet på alle filene - siden filene er så små vil du heller se alle bildene(og helst filnavnet under).

 

Noen som vet om et slikt script? (tenkte på en index fil som lå i en katalog, som automatisk viser filene som ligger i mappen).

 

Har sett på hotscript, men det er jo helt håpløst å finne noe der... Er alt for mange, og alle er jo bare sånne avanserte med thumbnails og stuff.

Lenke til kommentar
Videoannonse
Annonse
Tenkte faktisk jeg skulle lage noe lignende. Peiling på om det går an å uploade hele kataloger, og ikke bare en og en fil i php? Har ikke giddi å satt meg inn i upload ennå, får surfe litt i manualen når jeg får tid.

 

Du må velge en og en fil som du skal uploade. Dette er ikke en begrensning i PHP, men i HTML.

Lenke til kommentar

Ved å endre litt på koden nevn i http://forum.hardware.no/viewtopic.php?t=93846 kan man lage noe som dette:

 




<?php

//show directory

function directory($dir, $typer) {



    $handle = @opendir($dir);

    if (!$handle) {

       return false;

    }



    $res = array();

    while ($file = readdir($handle)) {

       // se om $file er en mappe

       if(!is_dir($file))

       {

          // kun vise bilder

          if (in_array(substr($file, strrpos($file, '.')), $typer)) {

            $res[$dir.$file] = $file;

          }

       }

    } // while

    closedir($handle);

    return $res;



}



// Kall directory() med katalogen det skal søkes i som første parameter, og

// et array over de filendelsene en vil søke etter som andre parameter.

// En får resultatet tilbake i form av et array hvor nøkkelen er katalog+filnavn og verdien er filnavnet

$bilder = directory('./pics/', array('.gif', '.png', '.jpg'));



// Så kan man skrive ut resultatet på den måten man måtte ønske

// F.eks slik:

foreach($bilder as $link => $name) {

   echo "<div style='background: silver; border: 1px solid black; width: 150px'>".

        "<a href='$link'><img src='$link' height='60' width='40' border='1'></a><br />" .

        "<a href='$link'>$name</a>".

        "</div><br/>";

}



?> 



[/url]

Lenke til kommentar
Parse error: parse error, unexpected T_STRING in G:serverwwwimagesindex.php on line 5

 

Det var noe slikt jeg fikk når jeg prøvde scriptet i den tråden du viste til også.

 

line 5 er vel denne

$handle = @opendir($dir);

 

og det tror jeg at du fixer ved å endre på denne

$bilder = directory('./pics/', array('.gif', '.png', '.jpg'));

siden du fikk feil mld på G:`blablabla så vil jeg gjette at du bruker en windows basert server altså må du endre "./pics/" til "G:serverwwwimages" eller.no lignende, men jeg har aldri programmert no særlig under windows så jeg er ikke helt sikker.

Lenke til kommentar

siden du fikk feil mld på G:`blablabla så vil jeg gjette at du bruker en windows basert server altså må du endre "./pics/" til "G:serverwwwimages" eller.no lignende, men jeg har aldri programmert no særlig under windows så jeg er ikke helt sikker.

 

Den endrede koden over funker som den er (vel hvis man ordner opp i det rotet bbcode har lagd) på apache/w2000.

Lenke til kommentar

$temp = 1;

foreach($bilder as $link => $name) { 

   echo "<div style='background: silver; border: 1px solid black; width: 150px'>". 

        "<a href='$link'><img src='$link' height='60' width='40' border='1'></a>"; 

    if($temp%3==0) echo "<br />"; 

    echo "<a href='$link'>$name</a>". 

        "</div><br/>"; 

    $temp++;

}

 

Denne burde vel hjelpe deg Geezuzz.

 

Edit: Glemte en setning...

Lenke til kommentar
Denne burde vel hjelpe deg Geezuzz.

 

Burde kanskje det, men jeg får bare

"Parse error: parse error, unexpected T_STRING in G:serverwwwindex.php on line 35"

 

Det var meningen at jeg skulle bytte ut

foreach($bilder as $link => $name) { 

    echo "<div style='background: silver; border: 1px solid black; width: 150px'>". 

         "<a href='$link'><img src='$link' height='60' width='40' border='1'></a><br />" . 

         "<a href='$link'>$name</a>". 

         "</div><br/>"; 

} 

 

med den koden du skrev med sant?

Lenke til kommentar

tok meg den frihet å legge til endel ting pluss endre litt:


<?php

/*når man skal ha bilder ved siden av hverandre er det mer ryddig med tabell*/

echo("<table><tr>");

//show directory

function directory($dir, $type) {



    $handle = @opendir($dir);

    if (!$handle) {

       return false;

    }



    $res = array();

    while ($file = readdir($handle)) {

       // se om $file er en mappe

       if(!is_dir($file))

       {

          // kun vise bilder

          if (in_array(substr($file, strrpos($file, '.')), $type)) {

            $res[$dir.$file] = $file;

          }

       }

    } // while

    closedir($handle);

    return $res;



}



// Kall directory() med katalogen det skal søi som fø parameter, og

// et array over de filendelsene en vil søtter som andre parameter.

// En fåresultatet tilbake i form av et array hvor nøen er katalog+filnavn og verdien er filnavnet

$img = directory('./', array('.gif', '.png', '.jpg'));

// Såan man skrive ut resultatet påen mån man måe ø

// F.eks slik:



/*bestemme width på <td>*/

$imgperline = ("5"); /*her setter du antall bilder på linja*/

$tdwidth = (100 / $imgperline); /*hvor mange prosent av hele linja tdwidth skal utgjøre(må ikke endres)*/



$temp = 1;

foreach($img as $link => $name) {

/*hvis man setter samme høyde og bredde på alle bilder vil flere av dem se deformerte ut så da fixer vi det påen annen måte*/

$size = GetImageSize("$link");

if($size[0] > $size[1]){

$height = ("100");

}elseif($size[0] < $size[1]){

$width = ("100");

}else{

$height = ("100") || $width = ("100");

}

/*jeg synes det ser bedre ut med bare filnavnet uten ext og stygge skråsteker på linken*/

          $file_name = substr($name, strrpos($name, '/'));

          $file_name = substr($file_name, 0, strrpos($file_name, '.'));



   echo("n<td style="width: $tdwidth%;"><a href="$link"><img src="$link" height="$height" width="$width" border="0"></a><br />n<a href='$link'>$file_name</a>"."</td>n");



    if($temp%$imgperline==0) echo("n</tr><tr>");

    $temp++;

}

echo("</tr></table>");

?>

Lenke til kommentar

hum det er vist en liten feil i det jeg skrev i natt så bildene blir ikke resizet helt riktig får se om jeg finner ut av det, hvis ingen andre ser feilen før meg.

 

Edit fant det nå:


<?php

echo("<table><tr>");

//echo("<div style="background: transparent; border: black 1px dashed; width: 80%; left: 10%;">");

//show directory

function directory($dir, $type) {



    $handle = @opendir($dir);

    if (!$handle) {

       return false;

    }



    $res = array();

    while ($file = readdir($handle)) {

       // se om $file er en mappe

       if(!is_dir($file))

       {

          // kun vise bilder

          if (in_array(substr($file, strrpos($file, '.')), $type)) {

            $res[$dir.$file] = $file;

          }

       }

    } // while

    closedir($handle);

    return $res;



}



// Kall directory() med katalogen det skal søi som fø parameter, og

// et array over de filendelsene en vil søtter som andre parameter.

// En fåresultatet tilbake i form av et array hvor nøen er katalog+filnavn og verdien er filnavnet

$img = directory('./', array('.gif', '.png', '.jpg'));

// Såan man skrive ut resultatet påen mån man måe ø

// F.eks slik:

$imgperline = ("5");

$tdwidth = (100 / $imgperline);

$temp = 1;

foreach($img as $link => $name) {



          $file_name = substr($name, strrpos($name, '/'));

          $file_name = substr($file_name, 0, strrpos($file_name, '.'));



$size = GetImageSize("$link"); /*vi sjekker størrelsen på bildet*/

if($size[0] > $size[1]){ /*hvis bildethøyden er større enn bredden definerer vi bare høyden*/

   echo("n<td style="width: $tdwidth%;"><a href="$link"><img src="$link" height="50" border="0"></a><br />n<a href='$link'>$file_name</a>"."</td>n");

}elseif($size[1] > $size[0]){ /*hvis bildetbredden er større enn høyden definerer vi bare bredden*/

   echo("n<td style="width: $tdwidth%;"><a href="$link"><img src="$link" width="50" border="0"></a><br />n<a href='$link'>$file_name</a>"."</td>n");

}else{/*hvis høyden =  bredden definerer vi både høyden og bredden*/

   echo("n<td style="width: $tdwidth%;"><a href="$link"><img src="$link" height="50" width="50" border="0"></a><br />n<a href='$link'>$file_name</a>"."</td>n");

}



    if($temp%$imgperline==0) echo("n</tr><tr>");

    $temp++;

}

echo("</tr></table>");

?>

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...