Aktueller Standort: Startseite> Neueste Artikel> So zeichnen Sie den Wert md5_file () aller Dateien in das Protokoll auf

So zeichnen Sie den Wert md5_file () aller Dateien in das Protokoll auf

M66 2025-05-31

In PHP ist die Funktion md5_file () ein sehr bequemes Werkzeug. Es kann direkt den MD5 -Hash -Wert einer angegebenen Datei berechnen, der häufig zur Überprüfung der Dateiintegrität verwendet wird. In diesem Artikel wird vorgestellt, wie die Funktion MD5_FILE () verwendet wird, um alle Dateien in einem Verzeichnis zu iterieren und ihre MD5 -Hash -Werte in einer Protokolldatei aufzunehmen.


1. Einführung in die Funktion md5_file ()

md5_file (String $ Dateiname): String | False

  • Parameter $ Dateiname : Der Dateipfad zur Berechnung von MD5.

  • Rückgabewert: MD5 -Hash -Zeichenfolge der Datei, falls fehlgeschlagen, return false .

Beispiel:

 $hash = md5_file('path/to/file.txt');
echo $hash;

2. Implementierungsideen

  1. Verwenden Sie die Recursive Directory Traversal -Funktion von PHP (wie z. B. rekursive DirectoryToryIterator ), um alle Dateipfade zu erhalten.

  2. Rufen Sie die Funktion md5_file () für jede Datei auf, um den Hash -Wert zu erhalten.

  3. Schreiben Sie den Dateipfad und den entsprechenden MD5 -Wert in die Protokolldatei.


3. Codebeispiel

 <?php
// Der Verzeichnisweg zu Traverse
$directory = '/path/to/your/directory';

// Protokolldateipfad
$logFile = '/path/to/your/logfile.log';

// Öffnen Sie die Protokolldatei,Schreiben anhängen
$logHandle = fopen($logFile, 'a');
if (!$logHandle) {
    die("无法Öffnen Sie die Protokolldatei\n");
}

// Rekursives Verzeichnis
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS)
);

foreach ($iterator as $file) {
    if ($file->isFile()) {
        $filePath = $file->getPathname();
        // Berechnen Sie die DateiMD5Hash -Wert
        $hash = md5_file($filePath);
        if ($hash !== false) {
            // Schreiben Sie in Protokollformat:Dateipfad + MD5Wert
            $logLine = $filePath . ' : ' . $hash . PHP_EOL;
            fwrite($logHandle, $logLine);
        } else {
            // Fehlerinformationen aufzeichnen
            $logLine = $filePath . " : Nicht berechnenMD5Wert" . PHP_EOL;
            fwrite($logHandle, $logLine);
        }
    }
}

fclose($logHandle);

echo "Alle DateienMD5Wert已记录到日志中。\n";
?>

4. Beschreibung

  • Stellen Sie sicher, dass das PHP -Skript Berechtigungen in das angegebene Verzeichnis und Protokolldateien gelesen und schreiben.

  • Um übermäßige Protokolldateien zu vermeiden, können Sie sie regelmäßig reinigen oder die Protokolldateien nach Datum teilen.

  • Wenn Sie den Dateipfad ausgeben möchten, der eine URL enthält, können Sie den Domänennamenteil ersetzen, z .

Zum Beispiel: