Gå til innhold

Problemer med et bildescript (bilder fra mappe)


Anbefalte innlegg

Her er et scripts jeg fant pa php.net.

Det fungerer flott hos meg (jeg endret pa det slik at det skulle vare ryddig nar jeg la det ut her, sa det kan vare det ikke virker lengre)

 

Det jeg har problemer med er at jeg i mappen gallery ogsa har en info.html fil.

Denne blir ogsa listet opp i dette scriptet.

Jeg forstar ikke sa mye av hva de har gjort her: if (substr($file,0,1)!=".")

Men jeg onsker a luke ut .html ogsa..

 

Er ikke sikker pa hvordan jeg skal forklare dette bedre.. og beklager at jeg ikke skriver med norske tegn.

 

 

<?php
$path = "gallery";
$dh = opendir($path);
while (false !== ($file=readdir($dh)))
{
 if (substr($file,0,1)!=".")
 {
   if (is_dir($path.$file))
   $dirs[]=$file.'/';
 else
   $files[]=$file;
 }
}
@closedir($dh);
if ($files)
 natcasesort($files);
if ($dirs)
 natcasesort($dirs);
$files=array_merge($dirs,$files);
foreach ($files as $file)
echo "<img src=\"gallery/$file\"<br />";
?>

Lenke til kommentar
Videoannonse
Annonse
Her er et scripts jeg fant pa php.net.

Det fungerer flott hos meg (jeg endret pa det slik  at det skulle vare ryddig nar jeg la det ut her, sa det kan vare det ikke virker lengre)

 

Det jeg har problemer med er at jeg i mappen gallery ogsa har en info.html fil.

Denne blir ogsa listet opp i dette scriptet.

Jeg forstar ikke sa mye av hva de har gjort her: if (substr($file,0,1)!=".")

Men jeg onsker a luke ut .html ogsa..

 

Er ikke sikker pa hvordan jeg skal forklare dette bedre.. og beklager at jeg ikke skriver med norske tegn.

 

 

<?php
$path = "gallery";
$dh = opendir($path);
while (false !== ($file=readdir($dh)))
{
 if (substr($file,0,1)!="." || !eregi("\.html", $file)
 {
   if (is_dir($path.$file))
   $dirs[]=$file.'/';
 else
   $files[]=$file;
 }
}
@closedir($dh);
if ($files)
 natcasesort($files);
if ($dirs)
 natcasesort($dirs);
$files=array_merge($dirs,$files);
foreach ($files as $file)
echo "<img src=\"gallery/$file\"<br />";
?>

5723078[/snapback]

 

 

if (substr($file,0,1)!=".") betyr:

Vi leser directory (i readdir()), og trekker ut filnavnet.

Hvis filnavnet har . (punktum) som første tegn, ikke list de ut.

Dette er operativsystem skjulte filer og/eller en .htaccess-fil, som vi helst ikke vil at noen skal lese.

Lenke til kommentar
derfor kan det være lurt å legge til både ".." som enkelt sagt betyr "opp ett nivå"(håper jeg) og info.html, slik at de ikke blir med i lista.

5727217[/snapback]

 

Trenger jo ikke legge til ".." Denne blir jo dekket ved at den starter med ".".

Koden som CruellaDeVille postet, vil jo også sjekke om filnavnet inneholder ".html". Gjør den det, vil den ikke gå inn i if setningen. I tillegg, så sjekker den om filnavnet starter på "."

 

En annen løsning, er å legge filene inn i array bare dersom det er godkjente fil endelser (f.eks .jpg, png, gif, osv...)

Endret av kakkle
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...