PHP에서 MD5_FILE () 함수는 매우 편리한 도구입니다. 지정된 파일의 MD5 해시 값을 직접 계산할 수 있으며,이 파일은 종종 파일 무결성 확인에 사용됩니다. 이 기사에서는 MD5_File () 함수를 사용하여 디렉토리의 모든 파일을 반복하고 MD5 해시 값을 로그 파일에 기록하는 방법을 소개합니다.
md5_file (String $ filename) : String | false
매개 변수 $ filename : MD5를 계산하는 파일 경로.
반환 값 : MD5 해시 파일의 문자열은 실패한 경우 false를 반환합니다.
예:
$hash = md5_file('path/to/file.txt');
echo $hash;
PHP의 재귀 디렉토리 Traversal 함수 (예 : 재귀 강력한 )를 사용하여 모든 파일 경로를 얻으십시오.
해시 값을 얻으려면 각 파일에 대해 md5_file () 함수를 호출하십시오.
파일 경로와 해당 MD5 값을 로그 파일에 쓰십시오.
<?php
// 트래버스의 디렉토리 경로
$directory = '/path/to/your/directory';
// 로그 파일 경로
$logFile = '/path/to/your/logfile.log';
// 로그 파일을 엽니 다,글쓰기를 추가하십시오
$logHandle = fopen($logFile, 'a');
if (!$logHandle) {
die("无法로그 파일을 엽니 다\n");
}
// 재귀 적으로 지나가는 디렉토리
$iterator = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator($directory, RecursiveDirectoryIterator::SKIP_DOTS)
);
foreach ($iterator as $file) {
if ($file->isFile()) {
$filePath = $file->getPathname();
// 파일을 계산하십시오MD5해시 가치
$hash = md5_file($filePath);
if ($hash !== false) {
// 로그 형식으로 작성하십시오:파일 경로 + MD5값
$logLine = $filePath . ' : ' . $hash . PHP_EOL;
fwrite($logHandle, $logLine);
} else {
// 기록 오류 정보를 기록합니다
$logLine = $filePath . " : 계산할 수 없습니다MD5값" . PHP_EOL;
fwrite($logHandle, $logLine);
}
}
}
fclose($logHandle);
echo "모든 파일MD5값已记录到日志中。\n";
?>
PHP 스크립트에 지정된 디렉토리 및 로그 파일에 대한 권한을 읽고 쓸 수 있는지 확인하십시오.
과도한 로그 파일을 피하기 위해 로그 파일을 정기적으로 청소하거나 날짜별로 로그 파일을 분할 할 수 있습니다.
URL이 포함 된 파일 경로를 출력하려면 도메인 이름 부분을 대체 할 수 있습니다. 예를 들어 https://example.com/path/file.jpg를 https://m66.net/path/file.jpg 로 바꾸십시오.
예를 들어: