Moin!
ich habe es jetzt mit get_headers gelöst:
<?php
$header_array = get_headers('http://.../Csv.zip', 1);
echo 'Last modified: '. $header_array['Last-Modified'].
'<br/>Size: '. $header_array['Content-Length']. $header_array['Accept-Ranges'].
'<br/>'. $header_array['Content-Type'];
?>
>
> Ergebnis:~~~php
Last modified: Tue, 02 Aug 2011 12:01:18 GMT
> Size: 19937822bytes
> application/x-zip-compressed
Für das zip wird also Last-Modified zurückgegeben und es gibt wohl auch noch ETag, das wohl pro Version wechselt. Damit sollte es möglich sein per Cronjob immer zeitig genug über eine neue Version informiert zu werden bzw diese zu importieren.
Das ist die schlechteste Idee. get_headers() sendet einen GET-Request, d.h. du kriegst zwar das Modifikationsdatum, aber PHP holt sich intern die GESAMTE DATEI - und zwar ohne, dass dein Code diese Datei kriegen könnte.
Das bedeutet, dass das gesamte ZIP bei jedem Testen des Modifikationsdatums transferiert wird - und wenn du feststellst, dass die Datei sich geändert hat, musst du sie danach NOCHMAL vom Server holen.
Effizient ist anders.
- Sven Rautenberg