• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

dynamischer Link nach Datum

MrNeo

New member
Guten Abend,

folgende Situation liegt vor:
Webcam mit Bildarchiv. Auf der Seite, auf der immer das aktuelle Bild erscheint, soll ein Link zum Archiv erfolgen.
Die Webcam legt die Bilder automatisch nach Datum in nachfolgender Ordnerstruktur ab.
Die Ordnerstruktur sieht folgendermaßen aus: "/Jahr/Monat/Tag/" im Klartext: /2010/01/29/phpshow.php

Das Skript müsste dann praktisch das aktuelle Datum auslesen und dann im Link unterbringen. Nett wäre vielleicht auch noch, den aktuellen Tag und den Tag davor per Link zu erreichen.
Das Ziel ist jeweils die Datei phpshow.php , ein fertiges Skript von http://phpshow.panmental.de/ , dieses liest automatisch die Bilder eines Ordners aus und zeigt diese wahlweise einzeln oder als slideshow an.

Würde mich über eine Lösungsmöglichkeit freuen!

Vielen Dank

MrNeo
 
hol dir mit time() den aktuellen Zeitpunkt als Unix-Timestamp. Mittels date kannst du dir dann den Pfad zum heutigen Archiv generieren
date("Y/m/d", time());.
Den Pfad zum Tag davor bekommst du in dem du von time() 24*60*60 Sekunden abziehst.

Je nachdem ob dein Jahr 2 oder 4 stellig ist und Monat und Tag mit oder ohne führender Null sind, musst du den Format-String für date halt anpassen. Näheres dazu im Link vom HamburgerJung
 
vielen Dank schonmal für die schnellen Antworten. Werde ich mich einmal dran versuchen!

Melde mich, wenns funktioniert hat oder auch nicht ;)
 
so, hat funktioniert!

vielen Dank

habe folgenden Code nun verwendet:

PHP:
$y=date("Y");
$m=date("m");
$d=date("d");
$d_new=$d-1;
$d_new = sprintf("%02d",$d_new);
echo '<a href="/'.$y.'/'.$m.'/'.$d.'/phpshow.php">Bilder von Heute</a><br>';
echo '<a href="/'.$y.'/'.$m.'/'.$d_new.'/phpshow.php">Bilder von Gestern</a>';
 
statt time() kann man auch $_SERVER['REQUEST_TIME'] verwenden, ist etwas schneller. vor allem, wenn es nicht auf die Sekunde ankommt.
 
time() ist etwa 2 – 3 Mal langsamer:
PHP:
<?php
// time() vs. $_SERVER test script //
$x = $a = $e = 0;
$a = microtime(true);
for ($i = 0; $i < 1000; $i++)
{
	$x = time();
}
$e = microtime(true);
$time = $e - $a;

$a = microtime(true);
for ($i = 0; $i < 1000; $i++)
{
	$x = $_SERVER['REQUEST_TIME'];
}
$e = microtime(true);
$req = $e - $a;

$a = microtime(true);
for ($i = 0; $i < 1000; $i++)
{}
$e = microtime(true);
$loop = $e - $a;

$gain = ($time - $loop) / ($req - $loop);

echo "performance: $gain";

tested on PHP 5.2.11 on Darwin Kernel Version 9.8.0; root:xnu-1228.15.4~1/RELEASE_I386 i386 Build
 
Zuletzt bearbeitet:
time() ist etwa 2 – 3 Mal langsamer:

Hab mir mal den Spass gemacht, das ganze auf meinen localen Server zu testen um absolute Zeiten zu erhalten. Dafür hab ich die Schleifen bis 1 Mio laufen lassen, um wenigstens ein zucken im Browser zu sehen. Hier das Ergebnis (Zeit/Operation):

time: 0.28 µs
req: 0.26 µs
addition ($x = 1 + $x; ): 0.11 µs

Schlussfolgerung für mich: Für eine Handvoll Oprerationen sollte man nicht die Zeit für solche 'Optimierungen' verschwenden, die verglichen mit der gesamten Laufzeit eine php-scriptes keine Rolle spielen.
 
Zurück
Oben