Antworten zu häufig gestellten Homepage-Fragen
 Alle Anleitungen
Einige Anleitungen
Intern
Kostenl. Partnerlinks
[,__,] Druckversion

Hinweis: Die Website Homepage-FAQs.de befindet sich seit 2012 im Archivmodus, d.h. sie wird nicht mehr aktualisiert.
FAQS zu HP&Co.
Webcam - nur das neuestes Bild innerhalb eines Verzeichnisses anzeigen und alle alten Bilder / Dateien darin löschen
(Zuletzt überarbeitet im Juni 2010)

Die Aufgabenstellung

Eine Webcam, die Bilder per FTP auf den Webspace hochlädt, aber nicht den gleichen Dateinamen verwenden kann, sondern verschiedene Dateinamen, so dass der aktuelle Dateiname unbekannt ist und die alten Dateien nicht überschrieben werden.

Lösungsansatz

Ein PHP-Script, der immer das aktuelle Bild anzeigt, egal wie es heisst und alle alten Dateien im Bilderverzeichnis löscht, so dass es nicht übervoll wird und keine manuelle Löschungen erforderlich sind.

Das PHP-Script (in 2 Versionen verfügbar)


Anpassungen im PHP-Script

A) Verzeichnisangaben (bei Include in eine Datei: vom Verzeichnis der Datei mit dem Include-Befehl ausgehend)

//Verzeichnis/-pfad (Bilder und Script nicht ins gleiche Verzeichnis!!!)
$verzeichnis = './bilder/';

./ bedeutet vom aktuellen Verzeichnis aus ins Verzeichnis bilder/ rein

B) Bildmasse festlegen (am besten die Originalmaße der Webcambilder angeben, evtl. proportional verkleinerte Maße)

//Bildbreite und -höhe festlegen
$bildbreite = "480";
$bildhoehe = "320";

C) Fester Dateiname für das aktuelle Bild (nur bei Version B vorhanden)

//Fester Dateiname des Bildes
$bildname = 'webcam.jpg';

Anmerkung zu C: Einige User möchte, dass das aktuelle Webcam-Bild einen festen Dateinamen hat, da sie es auch noch woanders einbinden wollen. Allerdings wird das Bild (das woanders eingebunden ist) nur aktualisiert wenn regelmässige Besucher das PHP-Script bzw. die Seite mit dem PHP-Script aufrufen bzw. wenn ein Cronjob diese Aufgabe übernehmen würde. Cronjobs sind bei manchen Webspacepaketen dabei, sonst einen Cronjobanbieter (z.B. https://www.cronjob.de/) nutzen.

Hinweis gilt für A, B und C:
Die rotmarkierten Stellen im PHP-Code anpassen.


Einbau in Webseite

1.) Die Datei aktuelles-bild-anzeigen-alle-alten-loeschen.php aus der ZIP umbenennen (wegen der Länge) in webcam.php

2.) An der Stelle auf der Seite, an der das Webcambild erscheinen soll, wird im Quelltext dieser PHP-Code eingebaut

<?php include("webcam.php"); ?>

Anmerkung: Die Datei webcam.php natürlich auch auf den Webspace hochladen, genauso wie die Datei mit dem Include-Code.

Wichtig:
Bei den meistens Webspaces muss die Datei mit dem Include-Code die Endung .php erhalten, evtl. auch Navigationspunkt bzw. Verlinkung anpassen.

Direkte Adresse (URL) zum Webcambild (falls externe Einbindung benötigt)

Die Datei aktuelles-bild-anzeigen-alle-alten-loeschen.php umbenennen (wegen der Länge) in webcam.php und ins Hauptverzeichnis hochladen.

Das Webcambild hätte in diesem Fall eine Internetadresse nach dem Schema >>
http://www.meine-seite.de/webcam.php

Anmerkung:
Natürlich die eigene Adresse bei 
www.meine-seite.de angeben.

Problem 1: Webcam erstellt immer ein Unterverzeichnis im Datumformat

Useranfrage

Meine Webcam erstellt auf den FTP Server im Verzeichnis ./Bilder/ immer ein Unterverzeichnis im DatumFormat, z.B. 5_28_2008, was soweit eigentlich auch ganz schön ist. Nur, somit muss ich jeden Tag die Datei nur-neue-bilder.php auf der HP anpassen, an das neue Verzeichnis. Gibt es dafür auch eine Lösung?

Lösung

Mal in meinem Script diese Stelle suchen

//Verzeichnis/-pfad (Bilder und Script nicht ins gleiche Verzeichnis!!!)
$verzeichnis = './bilder/';

und ändern in

//Verzeichnis/-pfad (Bilder und Script nicht ins gleiche Verzeichnis!!!)
$aktuell_datum = date("n_j_Y");
$verzeichnis = './bilder/'.$aktuell_datum.'/';

damit das Datum im Format Monat_Tag_Jahr (ohne führende Null, Jahr vierstellig) als Verzeichnisname genommen wird, allerdings habe ich es noch nicht getestet.

Problem 2: Es gibt eine Zeitverschiebung, da die Camera sich auf GMT bezieht

Zusatzfrage

Und es gibt noch eine Zeitverschiebung von 2 Stunden, da die Camera sich auf GMT bezieht. Kann man angeben das sich

$aktuell_datum = date("n_j_Y");

auf GMT bezieht ?

Lösung:

Mal mit gmdate statt date versuchen, siehe Infos unter http://de3.php.net/manual/de/function.gmdate.php

//Verzeichnis/-pfad (Bilder und Script nicht ins gleiche Verzeichnis!!!) 
$gmt_datum = gmdate("n_j_Y"); 
$verzeichnis = './bilder/'.$gmt_datum.'/';

Siehe auch


Anleitung (C) 2008, 2010 Daniel Wurst - http://www.homepage-faqs.de