Erhalte MD5-Prüfsumme für sehr große Dateien

8

Ich habe ein Skript geschrieben, das alle Dateien in einem Verzeichnis durchsucht und MD5-Hash für jede Datei zurückgibt. Es macht jedoch nichts für eine ziemlich große Datei. Ich nehme an, dass der Interpreter einen Wert für die maximale Verarbeitungszeit hat, und da es zu lange dauert, um diesen Wert zu erhalten, springt er einfach zu anderen Dateien. Gibt es trotzdem eine MD5-Prüfsumme für große Dateien über PHP? Wenn nicht, könnte es durch einen Chron-Job mit cpanel getan werden? Ich habe es dort versucht, aber es scheint nicht, dass mein Befehl md5sum jemals verarbeitet wurde: Ich bekomme nie eine E-Mail mit dem Hash. Hier ist das PHP, das ich bereits geschrieben habe. Es ist ein sehr einfacher Code und arbeitet Datei für Dateien einer angemessenen Größe:

%Vor%     
fny 18.07.2010, 23:57
quelle

5 Antworten

3

Obwohl ich es mit PHP 5.2 oder 5.3 mit einer 2GB-Datei nicht reproduzieren konnte, scheint das Problem bei 32-Bit-PHP-Builds aufzutauchen.

Auch wenn es keine wirklich nette Lösung ist, könntest du versuchen, das System an die Beherrschung zu lassen

%Vor%
  

46d6a7bcbcf7ae0501da341cb3bae27c test.txt

    
edorian 19.07.2010, 09:23
quelle
9

Stellen Sie sicher, dass Sie escapeshellarg ( Ссылка ) verwenden, wenn Sie sich für die Verwendung von shell_exec () entscheiden. oder System () -Aufruf. Ie.,

%Vor%     
smlefo 19.07.2010 22:20
quelle
2

Wenn Sie ein Ausführungszeitlimit oder eine maximale Ausführungszeit erreichen, sollte PHP eine entsprechende Fehlermeldung ausgeben. Überprüfen Sie Ihre Fehlerprotokolle. Wenn Sie ein Limit erreichen, können Sie die maximalen Werte für die PHP-Speicherauslastung und Ausführungszeit in Ihrer php.ini-Datei festlegen:

%Vor%

setzt die maximale Speicherbelegung auf 16 MB. Für maximale Ausführungszeit:

%Vor%

setzt die maximale Ausführungszeit auf 30 Sekunden.

    
Mike Sherov 19.07.2010 00:04
quelle
2

Sie könnten es mit der Befehlszeile

erreichen %Vor%     
Benoit 19.07.2010 10:53
quelle
2

FYI .... falls jemand eine schnelle md5 () Prüfsumme benötigt. PHP ist ziemlich schnell sogar mit den größeren Dateien. Dies gibt die Checksumme auf Linux Mint .iso (Größe 880 MB) in 3 Sekunden zurück.

%Vor%     
Milan 10.04.2013 21:41
quelle

Tags und Links