Bild des Tages

  • Hallo Zusammen,


    ich hab mal wieder eine Frage:

    Ich würde gerne ein Bild des Tages auf meiner Seite darstellen.

    Es soll alle 24 Stunden ein anderes Bild aus einem Bilderordner verwendet werden, womit sollte ich mich da befassen?

    Schon vorab vielen Dank für eure Hilfe!

    Gruß Reschke

  • Meiner Meinung nach auf jeden Fall mit HTML, PHP und ggf. CSS

    Idee zum Bildwechsel:

    Sobald die Seite aufgerufen wird, wird kurz geprüft ob das Bild gewechselt werden muss und ggf. gewechselt. Natürlich muss dazu irgendwo vermerkt werden, wass das Bild das letzte mal gewechselt wurde. Das ginge per datei, in welche das abgespeichert wird oder wenn eine Datenbank vorhanden ist, kann man auch diese nutezn.

  • So, ich habe mir nun viele Gedanken gemacht und bin nun auf folgendes gekommen (Übrigens das erste PHP (mini)Programm, welches ich komplett alleine geschrieben habe, worauf ich gerade stolz bin :D )



    Anschließend habe ich meine Aktuellen Spruch des Tages Bilder, einfach 1.jpg, 2.jpg, 3.jpg, .... , 13.jpg genannt.

    Dann habe ich die PHP Datei in die geforderte Seite includiert und die $imgnr, die sich jeden Tag ändert in die url gesetzt.

    PHP
    1. <img src="sprueche/<?php echo $imgnr; ?>.jpg">
  • Glückwunsch zum ersten PHP-Skript!

    Du hättest dir die Sache einfacher machen können, wenn Du die Funktionen file_get_contents() und file_put_contents() verwendet hättest. Damit kann man mit einer einzigen Anweisung eine Datei lesen oder schreiben.


    Mit meinen Hinweisen wollte ich auf so etwas hinaus:

    Code
    1. $now = time();
    2. $basedate = strtotime("2017-01-01");
    3. $datediff = $now - $basedate;
    4. $days = floor($datediff / (60 * 60 * 24));
    5. $imgs = glob("images/*.jpg");
    6. $idx = $days % count($imgs);
    7. echo '<img src="' . $imgs[$idx] . '">';
  • Vielen Dank für den Hinweis mit der Kurzschreibweise.
    Habe den Code jetzt entsprechend geändert:



    Ich wusste schon worauf du in etwa hinaus wolltest, kam allerdings mit der Umsetzung noch nicht zurecht. Aber dann kam ich zwischendurch auf die obige Idee.

  • Glückwunsch zum ersten PHP-Skript!

    Du hättest dir die Sache einfacher machen können, wenn Du die Funktionen file_get_contents() und file_put_contents() verwendet hättest. Damit kann man mit einer einzigen Anweisung eine Datei lesen oder schreiben.


    Mit meinen Hinweisen wollte ich auf so etwas hinaus:

    Code
    1. $now = time();
    2. $basedate = strtotime("2017-01-01");
    3. $datediff = $now - $basedate;
    4. $days = floor($datediff / (60 * 60 * 24));
    5. $imgs = glob("images/*.jpg");
    6. $idx = $days % count($imgs);
    7. echo '<img src="' . $imgs[$idx] . '">';

    Ich hatte die ganze Zeit mit der Zeile Probleme:


    Code
    1. $idx = $days % count($imgs);


    Habe es jetzt allerdings verstanden, da muss man erstmal drauf kommen!

    Es wird der nicht mehr teilbare Restwert übergeben, der natürlich Tag für Tag kleiner wird, bis hin zu 0.
    Das bedeutet ich müsste die Dateien dann 0.jpg, 1.jpg .... - 12.jpg benennen.

    Vorteil wäre natürlich neben dem kürzeren Quellcode, dass ich die beiden .txt Dateien nicht benötigen würde.

  • Zitat

    Das bedeutet ich müsste die Dateien dann 0.jpg, 1.jpg .... - 12.jpg benennen.

    Das wäre eine Möglichkeit. Mein Code im Original erfordert jedoch gar keine bestimmte Benennung sondern liest einfach die Dateien aus dem Verzeichnis und zeigt sie Tag für Tag an. Eine Nummerierung ist nur erforderlich, wenn Du eine bestimmte Reihenfolge erzwingen willst.