Bildabruf mit Zeitstempel für Caching

Fonsi-Heizer

Mitglied
Hallo liebe Community!

Ich benutze folgendes "kleines" PHP Skript um eine Bilddatei abzurufen und lokal in ein Verzeichnis abzuspeichern. Via Cron wird in gewissen Zeitabständen dies neu geladen.

PHP:
<?php
$ch = curl_init();
// Abruf der Originaldatei
curl_setopt($ch, CURLOPT_URL, 'https://www.domain.de/charts/bild.gif');
// Speicherort und neue Datei erstellen
$fp = fopen('images/bild.gif', 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec ($ch);
curl_close ($ch);
fclose($fp);
?>

Nun habe ich bei Einbindung des Bildes auf einer Wordpress Seite das Problem mit dem Caching. Das Bild geht natürlich in den Cache und wird daher nur nach Ablauf des Caches neu geladen.

Habt Ihr einen Tipp / Lösung, wie ich einen Zeitstempel hinzufügen kann, damit das Bild zwar in den Cache landet, aber dementsprechend neu geladen / angezeigt wird?

Vielen Dank und LG
 

ComFreek

Mod | @comfreek
Moderator
Dein Server muss halt die richtigen Cache-Headers für images/bild.gif ausgeben. Die findest du im Internet (ich weiß die auch nicht auswendig).

Hast du Zugriff auf den Serverkonfiguration?
 

ComFreek

Mod | @comfreek
Moderator
Am Server würde ich nichts ändern, zumal es auch mit PHP geht, siehe PHP: curl_setopt - Manual
Ich dachte, es geht um die Cache-Headers beim Ausliefern der serverlokalen Kopie -- nicht bei der Anfrage des Originals beim Originalserver.

Ok - also würdest Du empfehlen, dies nicht via PHP zu lösen - sondern die Konfiguration des Servers anzupassen?
Kannst du schon auch, aber normalerweise sind Server so konfiguriert, dass Dateien mit "statischer Dateiendung" (z. B. *.gif wie bei dir) nicht via PHP durchgeschleust werden beim Ausliefern. Um das umzukehren müsstest du zu viel umkonfigurieren -- die Serverkonfig direkt zu ändern ist viel einfacher: ungefähr 3 Zeilen hinzufügen.

(Diese korrekten 3 Zeilen muss man jedoch erstmal auswendig lernen/finden :D)