xdiff_string_rabdiff

2 つの文字列のバイナリ diff を、Rabin の polynomial fingerprinting アルゴリズムで作成する

説明

stringfalse xdiff_string_rabdiff(string $old_data, string $new_data)

ふたつの文字列のバイナリ diff を生成します。 » libxdiff によって実装された Rabin の polynomial fingerprinting アルゴリズムを使用します。 この関数と xdiff_string_bdiff との違いは、 使用するアルゴリズムです。この関数のほうが実行速度が速く、 より小さな diff を生成します。 また、パッチを適用する際に用いる xdiff_string_bpatchxdiff_file_bpatch と完全な互換性があります。

この関数はテキストファイルとバイナリファイルの両方に適用可能です。 生成された diff データは後に適用することで、 古いバージョンから新しいバージョンを再構築できます。

アルゴリズムの詳細は、 » libxdiff documentation を参照ください。

パラメータ

old_data

"旧" バイナリデータを含む最初の文字列

new_data

"新" バイナリデータを含む 2 番目の文字列

戻り値

"旧" データと "新" データの差分を含むバイナリ diff 文字列を返します。 失敗した場合に false を返します

例1 2つの文字列間のバイナリ diff を作成する

<?php
$old = file_get_contents('file_v1.txt');
$new = file_get_contents('file_v2.txt');

$diff = xdiff_string_rabdiff($old, $new);
file_put_contents('patch.rdiff', $diff);
?>

参考

  • xdiff_string_bdiff
  • xdiff_string_bpatch
  • xdiff_file_bpatch