Gå til innhold

Thumbnails og PHP


Anbefalte innlegg

Jeg forsøker å vise thumbnails i en katalogindeks, men får et problem når jeg skal liste opp alle filertyper som .jpg, .jpeg, .gif og .bmp. Jeg må tilsynelatende skrive inn hele filnavnet i variabelen og ikke bare etternavnet noe som er lite hensiktsmessig.

 

I tillegg trenger jeg tips til hvordan sorteringen kan gå utifra norsk dato-setting og ikke amerikansk.

 

Noen forslag?

 

<?php

 

if(empty($maindir))

{

$maindir = "./";

}

else

{

$maindir == $maindir; #set path to the main directory

}

 

$thisdir = opendir($maindir); #opens the main directory

 

while($fn = readdir($thisdir)) #reads the main directory

 

{

if ($fn == "index.htm"||$fn == "."||$fn == ".."||$fn=="thumbs.db"||$fn=="polio") continue; #hides filetypes from the list

echo "<a href=\"$fn\">$fn</a>

<br>"; #list the files in the main dirctory

if ($fn != ".jpg"||$fn != ".jpeg"||$fn != ".gif"||$fn != ".bmp") continue; #HER VISES KUN FILER SOM HAR FAKTISK NAVN SOM ".jpg" og ikke samtlige *.JPG-filer

echo "<a href=\"$fn\"><img src=\"$fn\" border=\"0\" width=\"100\" height=\"100\" alt=\"$fn\"></a>";

}

 

closedir($thisdir); #closes the main directory

 

?>

 

Edit; endre kommentar i koden

Endret av el_torro
Lenke til kommentar
Videoannonse
Annonse

$extensions = Array("jpg", "gif", "png", "bmp", "jpeg"); // de endelser som skal være lov
$filext_array = path_info($fn); //$fn er filnavnet
$filext = $filext_array['extension'];
if(in_array($filext, $extensions)) {
   // Filer ok... Vis dem i listen
}
else{
   //  Fil ikke ok.. Ikke vis dem
}

Dette er en måte... Finnes mange måter å finne ut filendelsen på en fil på...

Det beste er å sjekke mimetypen til filen, for å sjekke at virkelig er et bilde.

Hvem som helst kan rename en fil og legge på .jpeg eller .gif på slutten

Framgangsmåten er noe ala det samme men bruk denne funksjonen for å finne mime typen:

mime_content_type

Anbefaler denne måten.

 

EDIT: Endret til å heller benytte pathinfo funksjonen. Denne funksjonen krever php versjon>=4.0.3

Endret av kakkle
Lenke til kommentar

Hei

 

Hvis du ikke har php >=4.3.0, kan du prøve en av disse:

<?php

if ( ! function_exists ( 'mime_content_type ' ) )
{
  function mime_content_type ( $f )
  {
      return exec ( trim( 'file -bi ' . escapeshellarg ( $f ) ) );
  }
}

?>

<?php

if ( ! function_exists ( 'mime_content_type ' ) )
{
  function mime_content_type ( $f )
  {
      return system ( trim( 'file -bi ' . escapeshellarg ( $f ) ) );
  }
}

?>

(Hentet fra kommanterer på denne siden: http://no.php.net/mime_content_type)

Her står det også at dersom du kjører windows, så trenger du et ekstra program for å bruke file kommandoen, som fås her:

http://gnuwin32.sourceforge.net/packages/file.htm

 

Prøv å se om det funker

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å
×
×
  • Opprett ny...