Side 1 af 1

Indsætte alle billedfiler fra en mappe på hjemmeside

Indlæg: ons apr 07, 2010 13:43
af Karen
Hej
Jeg arbejder med nogle hjemmesider i php, hvor der på nogle af undersiderne skal indsættes en del billeder (i miniformat, da de senere skal bruges som links til de rigtige billeder). Jeg prøver at indsætte dem vha. php, men er ingen ørn til det og har nogle problemer, senest med at frasorte ikke-billedfiler. Med tiden vil der komme rigtig mange billeder i de forskellige mapper, derfor er det vigtigt at finde ud af det ordentligt fra starten.

Jeg har forsøgt mig med flg. kode (fra PHP in a Nutshell)):

$handle = opendir("image/billedalbums/karen/");
if ($handle) {
while (false !== ($file = readdir($handle))) {
print "<img src = image/billedalbums/karen/$file>";
}
closedir($handle);
}

Det virker også, på den måde at alle elementer i mappen vises som billeder. Det gælder undermapper og ikke-billedfiler. Koden forsøger også at vise . og .. (som jeg jo ikke kan fjerne fra mappen) som billeder.

Er der en nem løsning til kun at få f.eks. jpg-filer med over?

Jeg har også forsøgt mig med en anden kode (alle billeder i mappen hedder billeder + tal.jpg):
$tal = 1;
while($tal <= 6) {
print "<img src= billeder$tal.jpg>";
$tal = $tal +1;
}

Her er mit problem bare at jeg ikke ved hvor mange billeder der kommer til at ligge i de enkelte mapper. Jeg kan ikke finde ud af at lave en begrænsning til antallet af eksisterende billedfiler.

Jeg bliver meget glad for eventuel hjælp
Venlig hilsen
Karen

Re: Indsætte alle billedfiler fra en mappe på hjemmeside

Indlæg: ons apr 07, 2010 20:31
af Kim Ludvigsen
Jeg er ikke specielt skrap til php, og det kan sikkert gøres meget bedre end nedenstående (hvis ellers nedenstående virker).

$file = glob("image/billedalbums/karen/*.jpg");
$i=count($file);
for ( $taeller = 0; $counter <= $i; $counter += 1) {
list($width, $height) = getimagesize($file);
echo "<img src='$file' width='$width' height='$height' alt=''>";
}

Forklaring på koden:
Linje 1: Alle filnavne der ender på .jpg hentes og de gemmes i et array.
Linje 2: Der tælles hvor mange navne der er i arrayet.
Linje 3: Vi starter en tæller, der tæller, indtil vi når antallet fundet i linje 2.
Linje 4: Her findes højde og bredde på billedet.
Linje 5: Udskriver en billedkode i html - bemærk, at der også er indsat alt='' (to enkeltstående anførselstegn - ikke et enkelt gåseøjne) - det får koden til at validere.

Jeg har ikke prøvet, så jeg ved ikke, om det virker. Jeg har blandet din kode lidt sammen med den jeg selv har her:
http://kimludvigsen.dk/programmer-inter ... _fra_mappe

Re: Indsætte alle billedfiler fra en mappe på hjemmeside

Indlæg: fre apr 09, 2010 17:28
af Karen
Hej Kim og tak for hjælpen
Med din kode og andre har jeg strikket følgende sammen:

$sti="image/billedalbums/karen/";
$files=scandir($sti);
$billeder = array($files);
$i = count($files);
$tal = 3;
while($tal <=($i-3)) {
print "<img src=$sti$files[$tal] height = 80>";
$tal = $tal +1;
}

Det indsætter alle filer (på nær de tidligere nævnte punktummer) på hjemmesiden uden at jeg behøver bekymre mig om navngivningen eller nummerering.

Venlig hilsen
Karen