(PECL xdiff >= 1.5.0)
xdiff_file_rabdiff — 2 つのファイルのバイナリ diff を、Rabin の polynomial fingerprinting アルゴリズムで作成する
$old_file
, string $new_file
, string $dest
)ふたつのファイルのバイナリ diff を作成し、その結果をパッチファイルとして保存します。 この関数と xdiff_file_bdiff() との違いは、 使用するアルゴリズムです。この関数のほうが実行速度が速く、より小さな diff を生成します。 この関数はテキストファイルとバイナリファイルの両方に適用可能です。 できあがったパッチファイルを後で適用するには xdiff_file_bpatch()/ xdiff_string_bpatch() を使用します。
アルゴリズムの違いについての詳細は、 » libxdiff のウェブサイトを参照ください。
old_file
最初のファイルへのパス。"旧" ファイルです。
new_file
2 番目のファイルへのパス。"新" ファイルです。
dest
結果のパッチファイルへのパス。 "旧" ファイルと "新" ファイルの差分がこのファイルの内容となります。 このファイルはバイナリフォーマットで、人間には読めない形式です。
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
例1 xdiff_file_rabdiff() の例
以下のコードは 2 つのアーカイブのバイナリ diff を作成します。
<?php
$old_version = 'my_script_1.0.tgz';
$new_version = 'my_script_1.1.tgz';
xdiff_file_rabdiff($old_version, $new_version, 'my_script.bdiff');
?>
注意:
両方のファイルがメモリに読み込まれるので、 memory_limit が十分大きな値に設定されていることを確認しましょう。