要使用PHP的fileinfo擴展來驗證文件的完整性,您可以比較文件的元數據(如文件大小、創建時間、修改時間等)與預期的值
<?php
function verifyFileIntegrity($filePath, $expectedFileSize, $expectedCreationTime, $expectedModificationTime) {
// 檢查文件是否存在
if (!file_exists($filePath)) {
return false;
}
// 獲取文件的元數據
$fileInfo = finfo_open(FILEINFO_MINITIME | FILEINFO_MINVERSION);
$fileMetadata = finfo_file($fileInfo, $filePath);
finfo_close($fileInfo);
// 獲取文件的當前元數據
$currentFileSize = filesize($filePath);
$currentCreationTime = filemtime($filePath);
$currentModificationTime = filemtime($filePath);
// 比較元數據與預期值
if ($currentFileSize != $expectedFileSize) {
return false;
}
if ($currentCreationTime !== $expectedCreationTime) {
return false;
}
if ($currentModificationTime !== $expectedModificationTime) {
return false;
}
return true;
}
// 使用示例
$filePath = 'path/to/your/file.txt';
$expectedFileSize = 1024; // 預期文件大小(字節)
$expectedCreationTime = 1632931200; // 預期創建時間(Unix時間戳)
$expectedModificationTime = 1633017600; // 預期修改時間(Unix時間戳)
if (verifyFileIntegrity($filePath, $expectedFileSize, $expectedCreationTime, $expectedModificationTime)) {
echo "文件完整性驗證通過。";
} else {
echo "文件完整性驗證失敗。";
}
?>
請注意,這個示例使用了文件的創建時間和修改時間作為驗證依據。您可以根據需要添加其他元數據(如MD5哈希值)來進行更嚴格的完整性檢查。