« xdiff_file_merge3
xdiff_file_patch_binary »

xdiff_file_patch

(PECL xdiff >= 0.2.0)

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

説明

function 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;
}

?>

参考

関連キーワード:
patch   xdiff   diff   パッチ   unified   適用   script   errors   flags   dest   パッチファイル   コード   Rejects   merge   binary   mixed   操作   モード   互換性   ツール   通常   バイナリ   フラグ   内部   拒否
関連する関数・ページ:
function.xdiff-string-patch   function.xdiff-file-bpatch   book.xdiff   function.xdiff-string-bpatch   ref.xdiff   function.xdiff-file-diff