Position actuelle: Accueil> Derniers articles> Comment enregistrer la valeur md5_file () de tous les fichiers dans le journal

Comment enregistrer la valeur md5_file () de tous les fichiers dans le journal

M66 2025-05-31

Dans PHP, la fonction md5_file () est un outil très pratique. Il peut calculer directement la valeur de hachage MD5 d'un fichier spécifié, qui est souvent utilisé pour la vérification de l'intégrité du fichier. Cet article présentera comment utiliser la fonction md5_file () pour itérater tous les fichiers dans un répertoire et enregistrer leurs valeurs de hachage MD5 dans un fichier journal.


1. Introduction à la fonction md5_file ()

md5_file (String $ nom de fichier): chaîne | false

  • Paramètre $ Nom de fichier : le chemin du fichier pour calculer MD5.

  • Valeur de retour: chaîne de hachage MD5 du fichier, en cas d'échec, return false .

Exemple:

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

2. Idées de mise en œuvre

  1. Utilisez la fonction de traversée de répertoire récursif de PHP (comme récursivectoryiterator ) pour obtenir tous les chemins de fichier.

  2. Appelez la fonction MD5_FILE () pour chaque fichier pour obtenir la valeur de hachage.

  3. Écrivez le chemin du fichier et la valeur MD5 correspondante dans le fichier journal.


3. Exemple de code

 <?php
// Le chemin du répertoire pour traverser
$directory = '/path/to/your/directory';

// Chemin de fichier journal
$logFile = '/path/to/your/logfile.log';

// Ouvrez le fichier journal,Ajouter l&#39;écriture
$logHandle = fopen($logFile, 'a');
if (!$logHandle) {
    die("无法Ouvrez le fichier journal\n");
}

// Répertoire de traverse récursivement
$iterator = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS)
);

foreach ($iterator as $file) {
    if ($file->isFile()) {
        $filePath = $file->getPathname();
        // Calculer le fichierMD5Valeur de hachage
        $hash = md5_file($filePath);
        if ($hash !== false) {
            // Écrire au format de journal:Chemin de fichier + MD5valeur
            $logLine = $filePath . ' : ' . $hash . PHP_EOL;
            fwrite($logHandle, $logLine);
        } else {
            // Enregistrer les informations d&#39;erreur
            $logLine = $filePath . " : Incapable de calculerMD5valeur" . PHP_EOL;
            fwrite($logHandle, $logLine);
        }
    }
}

fclose($logHandle);

echo "Tous les fichiersMD5valeur已记录到日志中。\n";
?>

4. Description

  • Assurez-vous que le script PHP a lu et écrit des autorisations dans le répertoire et les fichiers journaux spécifiés.

  • Pour éviter les fichiers journaux excessifs, vous pouvez les nettoyer régulièrement ou diviser les fichiers journaux par date.

  • Si vous souhaitez publier le chemin de fichier qui contient une URL, vous pouvez remplacer la pièce de nom de domaine, par exemple, remplacer https://example.com/path/file.jpg par https://m66.net/path/file.jpg .

Par exemple: