PHP
テキストの差分を計算するためのライブラリ(サードパーティまたは組み込み)はありますか?
8 に答える
それはあなたが何を意味し、何をしたいのかによって正確に異なりますが、
PEARText_Diff-テキスト差分を実行およびレンダリングするためのエンジン
どんな違い?ファイルの差分?配列に作用するarray_diff()があります。次に、 xdiffもあります。これにより、「ファイルの異なるリビジョン間の違いを含むパッチファイルを作成して適用できます」。後者はファイルまたは文字列に作用します。
編集:xdiffを追加する必要がありますが、リリースにはまだ出ていないようです。それを使用するには、ソースからビルドする必要があります。
Githubには、テキストと HTML の diff を作成する素敵で小さなSimplediff プロジェクトがあります。
この出力はGNU diff 形式です。それはあなたが探しているものかもしれません。
それは本当にあなたが望む結果に依存します。2 つのテキスト セットの diff ファイルを取得するだけの場合は、外部の diff コマンドを使用する方が簡単な場合があります (もちろん、これは開発している環境に完全に依存します)。
$diff = `diff $file1 $file2`;
そこから差分情報を使用したい場合は、解析する必要があり、この解決策はあなたが求めているものではないかもしれません。その場合は、上記の PEAR ライブラリを参照するか、同様のテキスト解析ライブラリを検索することをお勧めします。
Web プロジェクト用のこの JavaScript ベースのものが本当に気に入っています。
MediaWiki の差分エンジンはオープン ソースです (他の部分と同様)。ウィキペディアがテキスト差分を処理する方法が好きなら、それが解決策になるかもしれません。
組み込みではありませんが、Web サイトですべてをテストするための非常に優れたインターフェイスを備えており、高い粒度レベルで Text_Diff よりもいくらか高速であるように見えるため、気に入っています。