xdiff_file_patch_binary
xdiff_file_rabdiff
xdiff 関数
PHP Manual

# xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch — ファイルに unified diff 形式のパッチを適用する

### 説明

mixed xdiff_file_patch ( string `$file` , string `$patch` , string `$dest` [, int `$flags` = DIFF_PATCH_NORMAL ] )

ファイル `file` にパッチファイル `patch` を適用し、結果をファイルに保存します。 `patch` は、 xdiff_file_diff()/xdiff_string_diff() 関数で作成した unified diff 形式でなければなりません。 オプションのパラメータ `flags` で、操作モードを指定します。

### パラメータ

`file`

  元のファイル。

`patch`

  unified 形式のパッチファイル。 xdiff_string_diff() 関数や xdiff_file_diff() 関数、 あるいは互換性のあるツールで作成したものでなければなりません。

`dest`

  結果のファイルへのパス。

`flags`

  `XDIFF_PATCH_NORMAL`（デフォルト。通常のパッチ）あるいは `XDIFF_PATCH_REVERSE`（逆パッチ） のいずれか。

  バージョン 1.5.0 以降では、バイナリ OR を使用して `XDIFF_PATCH_IGNORESPACE` フラグを有効にすることもできます。

### 返り値

内部エラーが発生した場合に `FALSE` を返します。 パッチの適用に失敗した場合はパッチが拒否された部分の文字列、 そして成功した場合は `TRUE` を返します。

### 例

例1 xdiff_file_patch() の例

以下のコードは、unified diff 形式のパッチをファイルに適用します。

`<?php
$old_version = 'my_script-1.0.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($old_version, $patch, 'my_script-1.1.php');
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}
?>`

例2 逆パッチの例

以下のコードは、パッチを逆方向に適用します。

`<?php
$new_version = 'my_script-1.1.php';
$patch = 'my_script.patch';
$errors = xdiff_file_patch($new_version, $patch, 'my_script-1.0.php', XDIFF_PATCH_REVERSE);
if (is_string($errors)) {
echo "Rejects:\n";
echo $errors;
}
?>`

### 参考

- xdiff_file_diff() - 2 つのファイルの unified diff を作成する

xdiff_file_patch_binary
xdiff_file_rabdiff
xdiff 関数
PHP Manual