el_torro Skrevet 23. september 2006 Del Skrevet 23. september 2006 (endret) 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 23. september 2006 av el_torro Lenke til kommentar
kakkle Skrevet 23. september 2006 Del Skrevet 23. september 2006 (endret) $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 23. september 2006 av kakkle Lenke til kommentar
kakkle Skrevet 26. september 2006 Del Skrevet 26. september 2006 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå