0

2 つのファイルを比較して、2 番目のファイルが最初のファイルから変更されているかどうかを確認したいと考えています。

この実装md5_file()では、両方のファイルを比較する予定です。しかし問題は、元のファイルが Unix ライン コーディングによって作成され、2 番目のファイルが任意のタイプのライン コーディング (Unix、Mac、または Windows) である可能性があることです。したがって、ファイル比較は常に失敗します。この問題を解決するにはどうすればよいですか?.

両方のファイルから空白を削除してから、比較を進めました。しかし、この方法も失敗します。問題を解決する他の方法はありますか?

2番目のファイルをコピーまたは変更することは想定されていません。

自分自身を次のように修正しました

$file1 = md5(preg_replace('/\s/', '', file_get_contents($file1)));
$file2 = md5(preg_replace('/\s/', '', file_get_contents($file2)));

if ($file1 == $file2)
    continue;
4

2 に答える 2

1

2 番目のファイルのすべての行末を UNIX スタイルに置き換えるだけですが、元のファイルを保持できるように一時ファイルなどに対してのみ行います。

于 2013-07-22T07:22:18.027 に答える