Indsætte alle billedfiler fra en mappe på hjemmeside

Her kan du få hjælp til computerproblemer og programmer, som ikke er omtalt på Ludvigs Hjørne.

Indsætte alle billedfiler fra en mappe på hjemmeside

Indlægaf Karen » ons apr 07, 2010 13:43

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
Karen
 
Indlæg: 8
Tilmeldt: søn apr 12, 2009 14:47
Geografisk sted: Randers

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

Indlægaf Kim Ludvigsen » ons apr 07, 2010 20:31

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
Mvh.
Kim Ludvigsen
Kim Ludvigsen
Site Admin
 
Indlæg: 7263
Tilmeldt: tors jun 08, 2006 0:49

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

Indlægaf Karen » fre apr 09, 2010 17:28

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
Karen
 
Indlæg: 8
Tilmeldt: søn apr 12, 2009 14:47
Geografisk sted: Randers


Tilbage til Hjælp til alt

Hvem er online

Brugere der læser dette forum: Google [Bot] og 6 gæster

cron