2010-12-18 7 views
1

Wenn ich md5_file verwende, um die Prüfsumme einer entfernten Datei in PHP zu bekommen, lädt sie die Datei herunter und sie erhalten die Prüfsumme oder fordert sie die Prüfsumme vom entfernten Server an? Grundsätzlich versuche ich herauszufinden, ob es weniger Bandbreite gibt, eine MD5-Prüfung für eine Datei durchzuführen, um zu sehen, ob sie sich geändert hat, bevor ich die Datei erneut herunterlade, aber wenn md5_file die Datei an einen temporären Speicherort herunterlädt check, ich könnte auch einfach nur die Datei runterladen, oder?Lädt md5_file die Datei herunter, von der die Prüfsumme kommt?

+2

Ja, es muss die Datei abrufen, um es zu hashen. Und ich würde wahrscheinlich die Datei trotzdem bekommen. –

+0

In einem Wort, ja. –

Antwort

3

Erweitern auf Wodins Antwort: Es ist weniger Bandbreite, wenn Sie eine HEAD Anfrage für die Remote-Datei ausgeben. Die Webserver-Antwort enthält normalerweise einen Hash in Form eines ETag-Headers. Verwendung:

$h = get_headers($remote_file, true); 
$hash = $h["ETag"] or $hash = $h["Last-Modified"]; 

Beispiele siehe http://php.net/manual/en/function.get-headers.php.

3

Es müsste ja sein. Was Sie wahrscheinlich tun sollten, ist eine "if modified since" -Anforderung, die Ihnen nur dann die Datei sendet, wenn der Zeitstempel neuer ist als die von Ihnen angegebene Zeit. Ich weiß nicht, wie du das mit PHP machst.

1

Ja, es lädt tatsächlich die Datei herunter.

Verwandte Themen