毎日の開発では、いくつかの重要なファイルをバックアップし、必要に応じてファイルのコンテンツが変更されたかどうかを確認する必要があります。 PHPは、 MD5_File()とCopy()の2つの非常に実用的な機能を提供します。これは、ファイルバックアップと整合性の確認を簡単に実装するのに役立ちます。
この記事では、これら2つの機能を使用して、シンプルだが実用的なファイルバックアップおよび検証システムを構築する方法を紹介します。
MD5_FILE()は、指定されたファイルのMD5ハッシュ値を計算するために使用されます。その基本的な構文は次のとおりです。
md5_file(string $filename, bool $binary = false): string|false
$ filenameは宛先ファイルパスです。
$ binaryは、バイナリ形式で返すかどうかを決定します。デフォルトはfalse 、つまり32ビットの16進数文字列を返します。
コピー()はファイルをコピーするために使用され、構文は非常に直接的です。
copy(string $from, string $to): bool
$ fromは元のファイルパスです。
$ toは宛先ファイルパスです。
成功した場合はtrueを返し、失敗した場合はfalseを返します。
構成ファイルconfig.phpがあり、スクリプトを実行するたびにコピーをバックアップし、MD5検証を確認してコンテンツの一貫性を確認するとします。
これが完全なPHP実装の例です。
<?php
$sourceFile = '/var/www/html/config.php';
$backupDir = '/var/www/html/backup/';
$backupFile = $backupDir . 'config_backup.php';
// バックアップディレクトリを作成します(存在しない場合)
if (!is_dir($backupDir)) {
mkdir($backupDir, 0755, true);
}
// バックアップファイル
if (copy($sourceFile, $backupFile)) {
echo "ファイルは正常にバックアップされています: $backupFile\n";
// 計算します元のファイル和バックアップファイル的 MD5 価値
$sourceHash = md5_file($sourceFile);
$backupHash = md5_file($backupFile);
if ($sourceHash === false || $backupHash === false) {
echo "計算します MD5 その間にエラーが発生しました,ファイルパスが正しいかどうかを確認してください。\n";
} else {
echo "元のファイル MD5: $sourceHash\n";
echo "バックアップファイル MD5: $backupHash\n";
if ($sourceHash === $backupHash) {
echo "検証が合格しました:バックアップファイル与元のファイル完全一致。\n";
} else {
echo "警告:バックアップファイル与元のファイル不一致!お会計お願いします。\n";
}
}
} else {
echo "バックアップに失敗しました,お会計お願いします权限或路径。\n";
}
このスクリプトは、毎日のスケジュールされたタスク(Linux Cronを使用するなど)として実行して、キーファイルのバックアップと検証を自動的に完了できます。例えば:
0 2 * * * php /var/www/html/backup_script.php
このようにして、サーバーで事故が発生したとしても、バックアップディレクトリに最新の有効なプロファイルコピーを見つけることができます。
さらに、バックアップファイルは、FTPなどのリモートサーバーに送信するか、httpインターフェイスを介してhttps://m66.net/api/upload.phpなどのアドレスにアップロードして、データセキュリティをさらに強化することができます。
PHPのMD5_File()とCopy()を使用して、軽量ファイルのバックアップと検証システムをすばやく構築します。この方法は、構成ファイル、機密データファイルなどの処理において高い実用性と柔軟性を持ちます。パッケージ化され自動化されている限り、プロジェクトのメンテナンスに重要な役割を果たすことができます。