xdiff_file_patch
(PECL xdiff >= 0.2.0)
xdiff_file_patch — ファイルに unified diff 形式のパッチを適用する
説明
xdiff_file_patch
( string $file
, string $patch
, string $dest
[, int $flags
= DIFF_PATCH_NORMAL
] ) : mixed
ファイル 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;}?>