array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.xdiff-file-patch.php', 1 => 'xdiff_file_patch', ), 'up' => array ( 0 => 'ref.xdiff.php', 1 => 'xdiff 関数', ), 'prev' => array ( 0 => 'function.xdiff-file-patch-binary.php', 1 => 'xdiff_file_patch_binary', ), 'next' => array ( 0 => 'function.xdiff-file-rabdiff.php', 1 => 'xdiff_file_rabdiff', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/xdiff/functions/xdiff-file-patch.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PECL xdiff >= 0.2.0)
xdiff_file_patch — ファイルに unified diff 形式のパッチを適用する
ファイル 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
フラグを有効にすることもできます。
例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;
}
?>