[PHP] Bilder via Script laden - Cache des Browsers beachten

Manchmal möchte man vielleicht aus besonderen Gründen, dass das Abfragen von Bildern explizit durch PHP geht.
Wer das schon häufiger versucht hat, wird vielleicht auch festgestellt haben, dass es dann Probleme mit dem neuladen der Seite gibt, da die Browser nicht erkennen, dass die Bilddatei nicht verändert wurde (Cache).

Dafür gibt es im HTTP zwei Headerzeilen, die man nutzen kann, um zu überprüfen, ob die Datei, die der Browser (vielleicht) schon im Cache hat, auf dem aktuellen stand ist, oder nachgeladen werden muss. (Etag und Last-Modified).

Das nachfolgende Script ist ein Beispiel, wie man sowas mit PHP lösen kann.

image.php
http://pastebin.com/f57691416

Beispiel .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/image:([^/]+)$ [NC]
RewriteRule ^image:(.+)$ /image.php?img=$1 [NC,L]

Der Aufruf eines Bildes ist dann z.B. example.org/image:bild.png
Das Script erwartet das Bild dann im Verzeichnis example.org/images/
Den Zugriff auf das Verzeichniss /images/ könntet ihr dann mit einer .htaccess komplett von außen sperren.

Wie ihr die .htaccess einstellt, und in welchem Verzeichniss die Bilder dann sein sollen, bleibt natürlich euch überlassen. Ihr müsst es dementsprechend natürlich im Script anpassen.

Ich hoffe das hilft dem einen oder anderen.

mfg Balmung

Moin,

nur kurz überflogen, aber sieht schon mal sehr gut aus. Vielen Dank für die Mühe. Bei Gelegenheit werde ich es mal testen.

MfG
myPages