PHP Conference Japan 2024

xdiff_file_patch

(PECL xdiff >= 0.2.0)

xdiff_file_patch使用统一 diff 修补文件

描述

xdiff_file_patch(
    字符串 $file,
    字符串 $patch,
    字符串 $dest,
    整数 $flags = DIFF_PATCH_NORMAL
): 混合

使用 patch 修补 file 并将结果存储到文件中。 patch 必须是由 xdiff_file_diff()/xdiff_string_diff() 函数创建的统一 diff。可选的 flags 参数指定操作模式。

参数

file

原始文件。

patch

统一补丁文件。它必须使用 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() 示例

以下代码将统一 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
"拒绝:\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
"拒绝:\n";
echo
$errors;
}

?>

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top