Script für Bildausgabe

NuLL

Grünschnabel
Hi ich bräuchte mal ein Script (=

Und zwar soll mit dem Script (nennen wir es img.php) über den Aufruf
img.php?id=1 das Bild zirkus.jpg
img.php?id=2 das Bild fruehling.gif
img.php?id=3 das Bild feiern.jpg
img.php?id=4 das Bild tetris.jpg

aufrufbar sein ... die letzten beiden befinden sich z.B. auf einem Anderem Webspace ...

es sollen noch mehr Bilder hinzufügbar sein ... nun das Problem ... ich habe ein Script für MYSQL ... allerdings hat mein Webserver keinen SQL zugriff ...

Wer kann mir helfen?
 
Du kannst das statisch lösen:

PHP:
switch ($_GET['id']) {
   case 1:
      echo '<img src="bild1.jpg">';
      break;
   case 2:
      echo '<img src="bild2.jpg">';
      break;
   case 3:
      echo '<img src="bild3.jpg">';
      break;
   case 4:
      echo '<img src="bild4.jpg">';
      break;
   default:
     echo 'Kein Bild';
}

Oder eben mit einer Datenbank

PHP:
$query = mysql_query("SELECT url FROM img WHERE id = $_GET['id']");
$result = mysql_num_rows($query);

echo '<img src='.$result[0].'>'
 
Oder du liest das Bildverzeichnis mit dir() ein, speicherst die Einträge in einem Array und greifst per URL-Parameter auf die Indizes zu.

PHP:
<?php
$dh = dir("images");
$images = array();
$i = 1;
while($file = $dh->read()) {
    if ($file != "." && $file != "..")
        $images[$i++] = $file;
}
$dh->close();

echo "<pre>";
print_r($images);
echo "</pre>";

echo "<img src=\"images/" . $images[(int) $_GET["id"]] . "\" />";
?>
 
Original geschrieben von aquasonic
und wenn du nicht alle Bilder anzeigen willst?Oder sie in verschiedenen Ordnern bzw. Servern sind?

Verschiedene Ordner? Eine Funktion schreiben, die man dann für jedes Verzeichnis aufruft.
Nicht alle Bilder? Entweder eine Blacklist erstellen (array) und danach selektieren oder die Bilder z.B. mit einem underscore beginnen lassen und checken, ob das erste Zeichen ($file{0}) k?ein _ ist.
 
@ aquasonic ... das mit dem Array ist ne gute Lösung ... werd ich mal ins auge fassen ... allerdings wäre es mir lieber eine Externe Datei als DB für die Bilder zu verwenden :)

@ Johannes Röttger ... das wäre ne Lösung wenn alle dateien auf einem Server liegen ... das tun sie allerdings leider nicht ...



Ich werde erstmal das von aquasonic testen ... obwohl ich der Meinung bin das das noch nicht Optimal ist (kann ich damit auch Bilder vor dem Webroot laden?) / bzw ich eine Externe Datei als Bild Datenbank in Textform vorziehen würde :/
 
Mir fällt grad auf :

Das von Aqua geht ja so an sich garnet ... der gibt das Per echo aus ... also kann ich den ja garnicht in nen <img> Tag einbinden!

Der Quelltext der wie er nachher dastehen soll in der Datei und im Inet:

<img src="img.php?id=1">

Anders wärs ists dumm umzusetzen ...
 
Zuletzt bearbeitet:
image.inc.php:
PHP:
<?php
function displayImage($image_id) {
    switch ($image_id) { 
    case 1: 
        $strSRC = '<img src="bild1.jpg">'; 
        break; 
    case 2: 
        $strSRC = '<img src="bild2.jpg">'; 
        break; 
    case 3: 
        $strSRC = '<img src="bild3.jpg">'; 
        break; 
    case 4: 
        $strSRC = '<img src="bild4.jpg">'; 
        break; 
    }
    return $strSRC;
}
?>
main.php
PHP:
<?php

include 'image.inc.php';    /** image function einbinden **/

echo displayImage($_GET['image_id']); /** image einbinden **/

?>
aufruf via:
http://localhost/main.php?image_id=2
 
Ich glaube er will nicht den IMG-Tag geliefert bekommen, sondern das Bild selber, so dass er es mit
Code:
<img src="image.php?id=1">
einbinden kann. Das kann Du mit readfile machen, such mal im Forum danach, da gab es schon einige Beiträge zu.
 
Zurück