PHP - bild med samma namn som php-filen

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1

Hej hej!

Jag skulle vilja ta fram den aktuella sidans namn och sedan hämta en bild med samma namn och placera som en sidheader. Om bilden inte finns så skall en generisk bild placeras i headern. Meningen är alltså att ha en återvinningsbar kod till flera sidor.

Tänk följande:

Om filen heter "kontakt.php" så skall en villkorssats baka in en image-tag med en fil som heter "kontakt.jpg" om den existerar. Annars skall "generisk.jpg" visas. Typ så här:

if ($filnamn == 'kontakt.php'  && filesize(kontakt.jpg) != '0') {
echo "<p><img src='kontakt.jpg'></p>";	
} elseif ($filnamn == 'karta.php'  && filesize(karta.jpg) != '0') {
echo "<p><img src='karta.jpg'></p>";	
} else {
echo "<p><img src='generisk.jpg'></p>";		
}

Filnamnet får jag fram ur sökvägen med explode och count.

Samma kod skall som sagt användas för flera sidor.

Jag har använt filesize för att se om det finns en fil med en storlek skild från noll, men det får jag inte att fungera. Inte heller file_exists får jag att fungera.

Någon idé?

  • Medlem
  • Göteborg
  • 2008-03-04 15:03

Ligger php filerna och bilderna i samma mapp? annars måste du ange en relativ path till bilden.

Jag föreslår också att du använder basename

Tack för vägledningen!

Jag kom på rätt väg och löste det - på ett betydligt enklare sätt!

Jodå, bilderna ligger i samma mapp som själva filerna. Det handlar om hundratals automatiskt genererade mappar, och det blir (främst av historiska skäl) svårhanterligt om det inte är så att alla filer är slängda i samma mapp.

I alla fall:

$path = $_SERVER["SCRIPT_NAME"];
$pathfile =basename($path);
$pathimage = basename($path, ".php") . ".jpg";
$filstorlek = filesize($pathimage);

if ($filstorlek > 0) {
echo "<p><img src='$pathimage'></p>";	
} else {
echo "<p><img src='generisk.jpg'></p>";
}
  • Oregistrerad
  • 2008-03-05 02:44

Det går dock lite snabbare om du använder file_exists så slipper du php kolla storleken på filen.

1
Bevaka tråden