PHP zufälliges Bild aus Ordner anzeigen

Gast #6954489
Lesenswert?

Hallo zusammen,

ich benötige Hilfe einen Ansatz zu finden, wie ich folgendes umsetze:

Ich möchte auf der Startseite meiner Smart-Home-Umgebung, die ich 
mittels Apache/PHP/Python/Modbus aufgesetzt habe, als Startbildschirm 
ein Foto zeigen.

Bisher springt die Detailseite nach x Sekunden auf eine 
"start.php"-Seite.

Diese läd statisch ein Bild.
1
<a h#r#e#f="index_ha.php"><img src="start.JPG" alt="Bild"  style="width:1004px;height:748px"s/></a>

Dieses Bild möchte ich zufällig/beliebig aus einem Ordner wählen unter 
/var/www/html/backGroundPic

Die Dateinahmen der Bilder beginnen immer mit YYYY-MM-DD + musterlosem 
Dateiname.jpg

Hat jemand einen Ansatz, wie ich hier vorgehen kann?
Gast #6954987
Lesenswert?

Vielen Dank zusammen,das waren genau die Ansätze, die ich brauchte.

Hab es nun umgesetzt bekommen und es tut was es soll.
1
<link h#r#e#f="design.css" rel="stylesheet">
2
<meta http-equiv="refresh" content="25">
3
<?php
4
        $path = opendir('/var/www/html/pic/bilderrahmen/');
5
        $files = array_diff(scandir('/var/www/html/pic/bilderrahmen/'), ['.','..']);
6
        $i = rand(2,count($files));
7
        echo $files[$i];
8
        echo "<a hh#r#e#f='index_ha.php'><img src='./pic/bilderrahmen/$files[$i]' alt='Bild'  style='width:1004px;height:748px'/></a>";
9
?>



Das Neuladen habe ich mittels
<meta http-equiv="refresh" content="25">
gemacht.

Das ist ein sehr harter Übergang. Hat jemand eine Idee, das ganze 
weicher zu machen?
Gast #6955026
Lesenswert?

Eventuell wäre array_rand() noch interessant.
Übrigens, es sollte möglich sein, nur das Bild neu zu laden, mit dem 
refresh http header (beim der response vom Bild). Eine andere 
Möglichkeiten wären eine iframe. Oder per JS.
Gast #6955091
Lesenswert?

Achim schrieb:
> Das ist ein sehr harter Übergang.

kein Wunder, da wird ja auch einfach die ganze Seite neu geladen

Achim schrieb:
> Hat jemand eine Idee, das ganze
> weicher zu machen?

da gibts (meiner Mmeinung) nur eine (halbwegs gscheide) Lösung: 2 img 
Tags, die Bildquelle ist ein php script das ein zufälliges Bild 
ausliefert, ein bisschen javascript und css.
Gast #6955328
Lesenswert?

Ben B. schrieb:
> ... Und so schnell wird aus "zufälliges Bild aus Ordner anzeigen"
> ein komplettes Ajax-Galerie-Script.

naja, so schlimm muss es nicht werden. Es würde ja genügen, wenn beim 
laden der Seite mittels PHP ein Javascript-Array mit den Dateinamen 
befüllt wird. Dann kann ein JS-Script das Array mischen und nach 
vorgegebener Zeit den Inhalt eines Elementes austauschen - indem es das 
nächste Bild aus dem Array lädt. Mal ganz grob skizziert.
#6955401
Lesenswert?

Mach doch ein PHP das dir direkt das Bild streamt und link dieses dann. 
PHP sollte header für JPEG sowie expire cache ausgeben
1
$name = $files[$i];
2
$fp = fopen($name, 'rb');
3
// send the right headers
4
header("Content-Type: image/jpeg");
5
header("Content-Length: " . filesize($name));
6

7
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' );
8
header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s',time()+60*60*8 ) . ' GMT' );
9
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
10
header( 'Cache-Control: post-check=0, pre-check=0', false );
11
header( 'Pragma: no-cache' );
12

13

14
// dump the picture and stop the script
15
fpassthru($fp);
16
exit;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren