Annons

Bildvisare i php

Produkter
(logga in för att koppla)

centipod

Aktiv medlem
Jag tänkte sätta ihop en mycket enkel hemsida där jag kan visa mina foton. Jag vill inte bara länka mina thumbnails till jpg-filerna utan jag vill att de visas inbakade i hemsidan. Men jag vill inte ha en html-fil för varje bild som ska visas utan jag vill istället ha en php-fil som mall som visar olika bilder beroende på vad man skriver i länken.
Något i stil med visabild.php?=bild1.jpg eller hur det brukar se ut. Jag har sökt men har bara hittat med avancerade php-skript.

Någon som vet var man kan hitta en sån enklare kod? Jag kan nästan inget om php och min html är lite rostig.
 
För att hämta bilden använder du väl readfile()
Och sen kan du väl använda echo också skriver du ut en ny html sida med bilden. Har dock ingen hel kod för det..

/Michael
 
Om bilderna ligger i en katalog med namnet "bilder" i samma katalog som "visabild.php" borde följande räcka:

PHP:
<body>

<?
if (empty($_GET['bild']))
  $bilden = "bild1.jpg";
else
  $bilden = $_GET['bild'];
?>
<img src="bilder/<?= $bilden ?>" alt="<?= $bilden ?>" />

</body>

Länkarna blir enligt mönstret "visabild.php?bild=bild1.jpg"

Fyll själv på med lämpliga head-taggar och stilmall mm som du vil ha för utseendets skull
 
Finns det något enkelt sätt att göra så att sidan gallery.php automatiskt hämtar alla thumbnails från katalogen thumbnails och lägger in dessa som bilder och länkar dessa till visabild.php?bild=samma_filnamn_som_thumbnailen.jpg ?
 
Prova det är:

<?php
if ($process = opendir('thumbnails/')) {
while (false !== ($pic = readdir($process))) {
if ($pic != "." && $pic != ".." && $pic != "Thumbs.db") {
echo "<a href=\"visabild.php?" .$pic. "\"><img name=\"imgthumbs\" id=\"imgthumbs\" src=\"thumbnails/" .$pic. "\"></a> \n";
}
}
closedir($process);
}
?>

EDIT: Råckade skriva fel i en sökväg...
 
Senast ändrad:
Vill man vara säker på att bara lista filer som slutar på .jpeg eller .jpg kan man byta ut Michaels andra if-sats mot

PHP:
if (preg_match("/.jpeg$|.jpg$/", $pic ) == 1)
 
_Michael_ skrev:
Prova det är:

<?php
if ($process = opendir('thumbnails/')) {
while (false !== ($pic = readdir($process))) {
if ($pic != "." && $pic != ".." && $pic != "Thumbs.db") {
echo "<a href=\"visabild.php?" .$pic. "\"><img name=\"imgthumbs\" id=\"imgthumbs\" src=\"thumbnails/" .$pic. "\"></a> \n";
}
}
closedir($process);
}
?>

EDIT: Råckade skriva fel i en sökväg...

Coolt! Det funkade perfekt direkt! Tack!
 
magnus67 skrev:
Vill man vara säker på att bara lista filer som slutar på .jpeg eller .jpg kan man byta ut Michaels andra if-sats mot

PHP:
if (preg_match("/.jpeg$|.jpg$/", $pic ) == 1)

Och om man vill att lite fler bildformat ska godkännas kan man byta ut det mot:
PHP:
if (preg_match("/.jpeg$|.JPEG$|.jpg$|.JPG$|.gif$|.GIF$|.png$|.PNG$|.tif$|.TIF$|.tiff$|.TIFF$|.bmp$|.BMP$/", $pic ) == 1)
 
Hej igen!

Nu upptäckte jag något lustigt när jag laddade upp några bilder som var döpta 01.jpg 02.jpg... osv. De lade sig inte i ordning. Vad är det som bestämmer i vilken ordning de kommer och kan man ändra på något enkelt sätt så att de sorteras efter namn?
 
Marcus Nordén skrev:
Vad är det som bestämmer i vilken ordning de kommer
Nej, det har jag inte heller fattat.

och kan man ändra på något enkelt sätt så att de sorteras efter namn?
Ett sätt (kanske inte det bästa) är att lägga alla filnamn i en array, sedan sortera denna för att slutligen loopa igenom arrayen och skriva ut image-taggarna.

PHP:
<?php
if ($process = opendir('thumbnails/')) 
{
  $bilder = array();
  while (false !== ($pic = readdir($process))) 
  {
    if (preg_match("/.jpeg$|.jpg$/", $pic ) == 1)
    {
      $bilder[] = $pic; // lägg till $pic sist i arrayen $bilder
    }
  }
  closedir($process);
}

sort($bilder);

for ($i=0; $i<count($bilder); $i++)
{
  echo "<a href=\"visabild.php?" .$bilder[$i]. "\"><img name=\"imgthumbs\" id=\"imgthumbs\" src=\"thumbnails/" .$bilder[$i]. "\"></a> \n";
}

?>
 
_Michael_ skrev:
Och om man vill att lite fler bildformat ska godkännas kan man byta ut det mot:
PHP:
if (preg_match("/.jpeg$|.JPEG$|.jpg$|.JPG$|.gif$|
.GIF$|.png$|.PNG$|.tif$|.TIF$|.tiff$|.TIFF$|
.bmp$|.BMP$/", $pic ) == 1)

Kortare variant:
PHP:
if(preg_match("/\\.(jpe?g|gif|png|tiff?|bmp)$/i",$pic))
 
Senast ändrad:
ANNONS