Automatischer Wechseln von Bildern

Hallo,

wie kann ich erreichen, dass mein Banner automatisch gewechselt wird…

Ich habe z.B. einen Pool aus ca. 10 bannern und einer von diesen soll z.B. nach jeder Stunde gewechselt werden.

mfg

Also vielleicht wäre das ein Ansatz…

<img src="<?php
$stunde = date('H');
switch($stunde){
case "01":
echo 'banner1.jpg';
break;
...
case "24":
echo 'banner24.jpg';
break;
default:
echo 'banner1.jpg';
break;
?>">

Aber ich schätze du willst, dass nach Zufall gewechselt wird. Musst du halt noch Zufall einbauen.
Ich hoffe ich konnte etwas helfen.
Mfg
Mgier

Das geht ziemlich einfach (einfacher als du glaubst).

Die banner-ID lässt sich rel. leicht berechnen:

<?php
$anzahl = 6;   //Anzahl der Banner
$beginn = 0;   //Beginn der Banner-Nummerierung (warscheinlich 0 oder 1)

$time = (int) time()/3600; //Generiere Stunden-ID
$banner_id = $time%$anzahl + $beginn; //Hole Banner-ID aus Stunde
?>

Das Bild bindest du per PHP ein:

Damit kommt immer der nächste Banner nach der gegebenen Zeit. Jeder Banner kommt absolut gleich oft, das Intervall ist genau eine Stunde (modifizierbar über die 3600 Sekunden)

danke,

kann ich PHP eigentlich aus in der CSS Datei benutzen, denn ich habe per “url()” in der css datei mein bild eingebunden…

mfg

Da gibt es verschiedene Antworten auf verschiedenen
Abstraktionsebenen ;o)

Technisch kannst du CSS von PHP ausgeben lassen.
Bei einem eigenständigen CSS-Dokument mußt du dann per
header den richtigen Inhaltstyp senden (text/css).

Vom Zweck externer CSS-Dateien hingegen ist das in der Regel
zu vermeiden, weil die eigentlich bei ‘normalen’ Projekten
als statische Dateien gedacht sind, die sich also nicht ändern,
der browser die also nicht immer nachladen braucht. Wird
eine solche Datei jedoch als Ausgabe von PHP erzeugt, so
wird impliziert, daß die Datei immer nachgeladen werden soll.

Setzt du das also ein bei einem PHP-Skript, welches eine
(X)HTML-Ausgabe hat, so wäre es vermutlich besser, die
statischen CSS-Angaben in einer statischen externen Datei
abzulegen und die mit PHP zu bestimmenden CSS-Daten mit
dem Element style in der (X)HTML-Ausgabe zu notieren.

Auf einer anderen Abstraktionsstufe kennzeichnet die Benutzung
von CSS den Kram als rein dekorativ, es enthält also keine
relevante Information. Solltest du anderer Auffassung sein, wäre
CSS die falsche Methode ;o)

[quote=“hoffmann”]
Auf einer anderen Abstraktionsstufe kennzeichnet die Benutzung
von CSS den Kram als rein dekorativ, es enthält also keine
relevante Information. Solltest du anderer Auffassung sein, wäre
CSS die falsche Methode ;o)[/quote]

Ich habe CSS nur benutzt, da es doch na meiner Meinung mit reinem HTML nicht möglich ist einem “DIV”-Element einen Hintergrund zuzuordnen oder? Ich könnte zwar mittels “<img src”">" ein bild einfügen, dieses würde aber nicht als Hintergrund agieren und somit wäre es nicht möglich z.B. einen Text auf diesem Bild zu platzieren. Mittels CSS und “background-image: url(“bild.jpg”);” geht das aber ganz einfach.

liege ich da falsch?

mfg

Natürlich kannst du Textinformation auch dekorativ per CSS
über einer Bildinformation anordnen, wobei dann Text und Bild
eben per (X)HTML eingebunden werden, weil sie Information
enthalten und nur die Anordnung wird als Dekoration angesehen.

Sollte als Information wirklich ‘Text über Bild’ relevant sein, so ist
das in der Tat formal mit (X)HTML+CSS wohl gar nicht lösbar
(mal abgesehen von transitional-Varianten vielleicht). Da täte
man ein anderes Format wie SVG verwenden.

Wenn der Text eben die gleiche Information wie das Bild
repräsentiert, ist das Bild ja inhaltlich redundant und es spricht
nichts dagegen, es als CSS-Hintergrund zu hinterlegen.
Dann bewegt man sich wieder mehr auch die Stufe der konkreten
Umsetzung zu. Dann vermutlich eben am besten mit einer
CSS-Ausgabe innerhalb vom Element style in der
(X)HTML-Ausgabe.

[quote=“michi7x7”]Das geht ziemlich einfach (einfacher als du glaubst).

Die banner-ID lässt sich rel. leicht berechnen:

<?php
$anzahl = 6;   //Anzahl der Banner
$beginn = 0;   //Beginn der Banner-Nummerierung (warscheinlich 0 oder 1)

$time = (int) time()/3600; //Generiere Stunden-ID
$banner_id = $time%$anzahl + $beginn; //Hole Banner-ID aus Stunde
?>

Das Bild bindest du per PHP ein:

Damit kommt immer der nächste Banner nach der gegebenen Zeit. Jeder Banner kommt absolut gleich oft, das Intervall ist genau eine Stunde (modifizierbar über die 3600 Sekunden)[/quote]

Als Ausgabe erhalte ich nur folgendes:

<img src="/banner/banner%3C?echo%20+$banner_id;?%3E.png" alt="Banner">

mfg

[quote=“AlterWeiserMan”]
Als Ausgabe erhalte ich nur folgendes:

<img src="/banner/banner%3C?echo%20+$banner_id;?%3E.png" alt="Banner"> [/quote]

Das ist in der Tat mehr als seltsam. Was du hier siehst ist, dass PHP zwar die Short-Tag-Schreibweise in die normale Schreibweise ( <?php echo $banner_id; ?> ) umwandelt, den Code aber nicht parst, sondern direkt URL-Encodiert ausgibt. Mehr als seltsam.

Steht der Code in einer PHP-Datei?

[quote=“michi7x7”][quote=“AlterWeiserMan”]
Als Ausgabe erhalte ich nur folgendes:

<img src="/banner/banner%3C?echo%20+$banner_id;?%3E.png" alt="Banner"> [/quote]

Das ist in der Tat mehr als seltsam. Was du hier siehst ist, dass PHP zwar die Short-Tag-Schreibweise in die normale Schreibweise ( <?php echo $banner_id; ?> ) umwandelt, den Code aber nicht parst, sondern direkt URL-Encodiert ausgibt. Mehr als seltsam.

Steht der Code in einer PHP-Datei?[/quote]

Danke
Mit <?php echo $banner_id; ?> geht das nun wunderbar…
mfg