1

最近、PHP で 2 つのファイルの違いを見つける方法を考えていました。たとえば、次のようなテキスト ファイルがあるとします。

"Line one data = test test"

次に、次のような 1 つのファイルがあります。

"Line one data = test test Line two data = test test"

私がやりたいのは、次の2つのファイルの違いを出力することです:

"Line two data = test test"

PHPでこれを達成するにはどうすればよいですか? どんな助けでも大歓迎です!

4

3 に答える 3

0

両方のファイルのmd5チェックサムから始めることができます。出力ハッシュが異なる場合、ファイルは異なります。しかし、私はそれが念頭に置いている質問ではないと確信しています。私があなたの質問だと思うことに対する簡単な答えはありませんので。'diff'を読み上げることをお勧めします。これは、2つのファイルを読み取り、それらが異なるかどうかを判断するだけでなく、本質的に2つのファイルを並べて比較して違いがどこにあるかを示すことができるアルゴリズムの一種です。これはPHPで実行できる以上のものだと確信しています。まだ誰もが持っているかどうかはわかりませんが、私もそれを広範囲に検索していません。私がdiffを使用するのは、svnまたはgitでバージョン管理されたコードを実行しているときだけです。

「Notepad++」と呼ばれる素晴らしいプログラムがあり、プラグインを追加する機能があり、今説明したように比較するためのプラグインが利用可能です。

于 2012-05-20T00:28:22.487 に答える
0

テキスト ファイルを文字列にキャストしてから、str_replace()を使用します。

$one = "Line one data = test test";
$two = "Line one data = test test Line two data = test test";

$difference = str_replace($one, "", $two);

または、大文字と小文字を区別して置き換えるにはstr_ireplaceを使用します。

于 2012-05-19T20:47:03.213 に答える
0
$str1 = "Line one data = test test";
$str2 = "Line one data = test test Line two data = test test";

$str2 がより長い文字列で、$str1 が常に $str2 の先頭にある場合は、次を使用できます。

echo substr($str2, strlen($str1));

str_replace より高速です。

于 2012-05-19T20:49:03.400 に答える